十二 01 MySQL 加锁处理分析 发布时间:2014 年 12 月 1 日 发布者: OurMySQL MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是分析线上的一个死锁场景,了解死锁产生的原因。 继续阅读全文 →
十二 01 mysqldump加-w参数备份 发布时间:2014 年 12 月 1 日 发布者: OurMySQL 我们在用mysqldump备份数据时,有个选项是 –where / -w,可以指定备份条件,这个选项的解释是…… 继续阅读全文 →
十一 28 一个最不可思议的MySQL死锁分析 发布时间:2014 年 11 月 28 日 发布者: OurMySQL 本着机器不会骗人,既然报出死锁,那么就一定存在死锁的原则,我又重新深入分析了InnoDB对应的源码实现,进行多次实验,配合恰到好处的灵光一现,还真让我分析出了这个死锁产生的原因。这篇博文的余下部分的内容安排,首先是给出”润洁”同学描述的死锁场景,然后再给出我的剖析。对个人来说,这是一篇十分有必要的总结,对此博文的读者来说,希望以后碰到类似的死锁问题时,能够明确死锁的原因所在。 继续阅读全文 →
十一 28 MySQL索引与Index Condition Pushdown 发布时间:2014 年 11 月 28 日 发布者: OurMySQL 新版本的MariaDB或MySQL中ICP的启用确实影响了一些查询行为的外在表现,所以决定写这篇文章详细讲述一下ICP的原理以及对索引使用方式的优化。 继续阅读全文 →
十一 28 使用MySQL自身复制来恢复binlog 发布时间:2014 年 11 月 28 日 发布者: OurMySQL 如果需要恢复的二进制日志较多,较复杂,强烈建议使用MySQL自身复制来恢复binlog,而不要使用mysqlbinlog。 继续阅读全文 →
十一 28 MySQL源码:索引相关的数据结构(后篇) 发布时间:2014 年 11 月 28 日 发布者: OurMySQL 本文不打算从High Level来介绍MySQL索引及其使用,相反是从MySQL源码对应的数据结构开始介绍。如果你了解MySQL索引的基本原理,还打算继续从源码的角度解决一些索引使用的问题,那么你适合参考本文,否则,打住,真的很枯燥。 继续阅读全文 →
十一 28 MySQL源码:索引相关的数据结构(前篇) 发布时间:2014 年 11 月 28 日 发布者: OurMySQL 本文将尝试介绍MySQL索引存储相关的数据结构。程序=数据结构+算法,了解数据结构,然后就可以进一步了解MySQL源码中如何使用索引,如何选择自己的执行计划。 继续阅读全文 →
十一 26 几招省磁盘空间的方法 发布时间:2014 年 11 月 26 日 发布者: OurMySQL 我们在工作中时常会遇到一些客户的TPSQPS都不太高,但磁盘占用非常大,一旦单实例空间太大,像内存、网络、CPU以及备份都将增加相应的开销。可能仅仅是由于空间不满足使得我们不得不进行扩容,下面的方法提供给大家参考。有则改之无则加勉。 继续阅读全文 →
十一 26 mysql存储数据乱码 发布时间:2014 年 11 月 26 日 发布者: OurMySQL mysql的字符集设置有多个层级,在mysql中存储中文,如果不能正确设置字符集,很容易出现数据乱码。今天就有一个用户反馈他数据库中的数据下午1点多开始出现了乱码。在这里,我分享下具体问题的排查过程,以及解决的办法。 继续阅读全文 →
十一 26 优化MySQL的21个建议 发布时间:2014 年 11 月 26 日 发布者: OurMySQL 今天一个朋友向我咨询怎么去优化 MySQL,我按着思维整理了一下,大概粗的可以分为21个方向。 还有一些细节东西(table cache, 表设计,索引设计,程序端缓存之类的)先不列了,对一个系统,初期能把下面做完也是一个不错的系统。 继续阅读全文 →