初涉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优化


猜你喜欢

转载自blog.csdn.net/android_gogogo/article/details/78147300