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、进行判断重复的行数
查看行数:
复制代码
<