提升MySql的性能的几个方面

SQL herman 1798浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
昨天参加《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下的查询 
控制机制  
图片3
效果测试 
图片4

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » 提升MySql的性能的几个方面