MySQL不走联合索引_SQL优化,索引原则,及mysql不走索引的原因分析

SQL语句优化

1 企业SQL优化思路

1、把一个大的不使用索引的SQL语句按照功能进行拆分

2、长的SQL语句无法使用索引,能不能变成2条短的SQL语句让它分别使用上索引。

3、对SQL语句功能的拆分和修改

4、减少“烂”SQL由运维(DBA)和开发交流(确认),共同确定如何改,最终由DBA执行

5、制定开发流程

2 不适合走索引的场景

1、唯一值少的列上不适合建立索引或者建立索引效率低。例如:性别列

2、小表可以不建立索引,100条记录。

3、对于数据仓库,大量全表扫描的情况,建索引反而会慢

3 查看表的唯一值数量

select count(distinct user) from mysql.user;

select count(distinct user,host) from mysql.user;

4 建立索引流程

1、找到慢SQL。

show processlist;

记录慢查询日志。

2、explain select句,条件列多。

3、查看表的唯一值数量:

select count(distinct user) from mysql.user;

select count(distinct user,host) from mysql.user;

条件列多。可以考虑建立联合索引。

4、建立索引(流量低谷)

force index

5、拆开语句(和开发)。

6、like '%%'不用mysql

7、进行判断重复的行数

查看行数:

复制代码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值