最近一个项目进行2.0版本升级。2.0版本部署到所有的线上机器后,发现网站访问速度变的很慢。为了不影响用户体验,紧急进行版本回滚,然后进行问题查找。
分析
首先查看php的日志,没有发现有用的线索。
然后看了下mysql db的监控情况。如下图:
…
[获取更多]最近一个项目进行2.0版本升级。2.0版本部署到所有的线上机器后,发现网站访问速度变的很慢。为了不影响用户体验,紧急进行版本回滚,然后进行问题查找。
分析
首先查看php的日志,没有发现有用的线索。
然后看了下mysql db的监控情况。如下图:
…
[获取更多]MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是分析线上的一个死锁场景,了解死锁产生的原因。
注:MySQL是一个支持插件式存储引擎的数据库系统。本文下面的所有介绍,都是基于InnoDB存储引擎,其他引擎的表现,会有较大的区别。
MySQL …
[获取更多]我们在用mysqldump备份数据时,有个选项是 -where / -w,可以指定备份条件,这个选项的解释是:
-w, --where=name Dump only selected records. Quotes are mandatory
我们可以做个测试,例如:
mysqldump --single-transaction -w ' id < 10000 ' mydb mytable > mydump.sql
这时候就可以备份出mytable表中 id< 10000 的所有记录了。假设我们还想加一个时间范围条件,例如:
mysqldump --single-transaction -w " id < 10000 and logintime < unix_timestamp('2014-06-01')" mydb mytable > mydump.sql
在这里,一定注意单引号和双引号问题,避免出现这种情况:
mysqldump --single-transaction -w ' id < 10000 and logintime < unix_timestamp('2014-06-01') ' mydb mytable > mydump.sql
这样的话,结果条件会被解析成: …
[获取更多]