初涉MySql性能优化
1.为什么要进行数据库性能优化
a避免因数据库连接Timeout导致服务器报错(以5开头,服务器内部错误)
b节省资源的开销(数据冗余 不合适的数据类型导致存储空间浪费)
c提高查询速度
2.该怎么优化:
可以从SQL及索引 数据库表结构 系统配置和硬件四个方面考虑
4.SQL优化(针对查询优化):
开启MySql慢查日志对有效率问题的sql进行监控,然后用mysqldumpslow(官方工具)或pt-query-digest(信息全面)日志分析工具分析日志,针对执行次数多且每次查询占用时间长sql IO消耗大的sql以及未命中索引的sql。也可以使用explain查看sql执行计划,找到优化思路
5索引优化
选择合适的列建立索引:
a 在where从句 group by从句 order by从句 on从句中出现的列
b索引字段越小越好
c离散程度大的列放到联合索引的前面
索引的维护(分析数据库索引 删除冗余 弃用索引) 索引维护工具 :pt-duplicate-checker
6.数据库表结构设计
a选择合适的数据类型
b对于需要使用text bin类型,选择分表
c遵守范式设计很好的规避字段冗余,分表会影响导致查询效率,根据业务需求合理使用反范式设计,用磁盘空间换取执行时间
7系统配置:
修改网路配置 增加数据库服务器tcp支持的队列数
修改操作系统打开文件数的限制
8硬件配置
注:参考慕课 性能优化之mysql优化