MySql优化总结
Mysql优化切入点
物理层面:
硬件升级
读写分离
使用Mysql集群
分库分表
运维层面:
定时清理无效数据以及磁盘碎片
选择合适的备份策略
配置优化
设计层面:
表设计规范
列类型选择
使用索引
使用合适的存储引擎
SQL优化
定位慢查询
使用explain分析你的SQL
常见的SQL优化点
让SQL生效索引
使用存储过程
硬件升级
升级物理服务器是最简单最有效的优化方式之一,可适当增强内存、CPU的配置,提高MySQL的性能。
当内存超过4g,使用64位操作系统,使用64位mysql
配置读写分离和集群
分库分表
定时清理无效数据以及磁盘碎片
删除mysql数据时,必然会在数据文件中造成不连续的空白空间。如果一段时间内的大量删除操作,会使得空白空间变得比存储内容所占的空间更大。这会导致存储位置不连续,物理存储顺序与理论存储顺序不相同。
所以,需要运维人员定时清理无效数据以及磁盘碎片。
备份策略
配置优化
修改my.cnf文件,在linux下,默认在 /var/mysql/conf.d/
路径下。
最大连接数
缓存大小
适当增加查询缓存大小,可以极大的提高mysql的查询性能:
表和列的设计
使用索引
定位慢查询
进行SQL语句优化前,首先要找到有问题的SQL语句,我们把那些执行速度很慢的查询SQL称作为慢查询SQL。在MySql中,可以开启慢查询日志,来定位慢查询语句。
开启Mysql的慢查询日志
如下配置代表当select语句查询时间超过1s钟时,那么则这个查询语句就是一个慢查询语句,他会被记录到 remotejob-01-slow.log
中:
查看Mysql的运行状态,找到日志中的慢查询
查询mysql数据库的运行状态,比如mysql的运行时间、执行次数、当前连接状况…
模拟慢查询
模拟慢查询环境:使用存储过程构建大表
如果此时执行sql语句超过1s,就会被统计到。
最后更新于
这有帮助吗?