昨天参加《2015中华数据库与运维大会》,想起前几年参加记录的笔记。今天特地整理了一下笔记,在这里记录一下,共大家参考学习!
1、读比写要强
查询操作比较强
简单的sql很强(PK或有效的索引查找)
要求:内存里完成排序、分组统计、无子查询
更新操作很弱
写存贮引擎日志
写MySQL Binlog
Server&Storage层的分布式事务协议
2、MySQL的问题
全局锁太多
SYS CPU 过高
Trx_list
Read View List
Lock List
Spinlock & RW Lock & Mutex
临界区太大
大锁(事务表、Buffer、Index、Commit)
并发是关键
降低并发,减少SYS CPU
合理的并发时程减少锁争用
减少事务表长度,缩短事务表的临界区
控制表的大小,缩短索引维护的临界区
读写没有分离
调整优化应用的读写比例
MySQL无法分别控制读写,以配合应用的读写比例
优化器太弱,提高SQL写法
对子查询的优化很差
对Join的优化很差
对索引的选择不可靠
3、MySQL的并发控制
操作分类
查询
复杂的查询
简单的查询
更新
简单的事务
复杂的事务
读写分开
限定总的并发数
限定查询的并发数
限定事务的并发数
事务分类
简单的事务
Auto Commit模式
每个DML语句后自动Commit
复杂的事务
非Auto Commit模式
由多个DML构成一个语句
查询分类
简单查询
Auto Commit模式
根据PK或索引查找少量记录
复杂查询
Auto Commit模式
包含子查询、分组统计、没有Where条件等
事务查询
人为事务或非Auto Commit下的查询
控制机制
效果测试
: » 提升MySql的性能的几个方面
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/database/252339.html