mysql数据库优化大全_mysql数据库优化

一.开启慢查询日志

1.开启方式:

参考mysql数据库开启慢查询日志

2.查询日志的常用工具

在开发中,慢查询日志一天可能生成好几个G,一条一条的查询不太符合实际,所以我们要使用慢查询日志的分析工具,来查看慢查询日志的报表,比较常用的有两种:

bd725a4cdb891cabce7f20c88f9ec503.png

3.通过慢查询日志发现有问题的sql

450cf1c281e3f663baf9cf4ee218c126.png

注:IO大的SQL就是扫描的行数越多,IO就越大

Rows examine 和Rows Send是扫描的行数和发送的行数,如果扫描的行数远远大于实际发                 送的行数说明sql索引的命中率就很低

二.使用explan查询SQL执行计划

数据库是对sql先进行分析再进行具体的查询,对sql的分析就是执行计划

533ce2e24ae912224a0f25998db260c0.png

注:type中性能最好的就是const,最差的就是ALL

const:说明是一个常数查找,一般是主键和唯一索引

count(*)和count(列名)的区别是,*包含所有的列,列名不包含空值

ba30c2137fcd3afe486b5e006cb3ff55.png

注:上面的查询语句是同时统计出两个年份的数量,OR NULL代表如果为空就不进行统计

三. 建立合适的索引

c729047d43004cb3a17aa1a44611befe.png

注:最后一句话的意思是,select count(distinct customer_id) ,count(distinct staff_id) from table

最后查询出的customer_id的条数为 500 ,staff_id的条数为5,所以customer_id覆盖的范围就广,离散度就大,因为作为联合索引放在前面的效果会更好

四。表设计

30379a30d080fbcdd235e0df525836fd.png

注:192.168.0.1需要11个字节,bigint只需要7个字节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值