MYSQL优化点一SQL语句,索引

MYSQL优化点一SQL语句,索引

找到慢查询sql语句
设置慢查询时间阙值,开启慢查询日志,但只能查看执行完的慢查询
用show processlist查看正在执行的慢查询
常见不走索引的场景
c列精确到时分秒
select c from tab where date©=‘2021-01-01’;
select c from tab where c+2=10;
where子句中的列名使用了函数操作或运算操作不走索引。即使列名有索引,但添加操作后,mysql认为与其一个一个对索引进行函数转化,倒不如走全表扫描效率更高
优化;可以试试范围查询
select c from tab where c>=‘2021-01-01 00:00:00’ and c<=‘2021-01-02 00:00:00’ ;

c列是字符列
select c from tab where c=111;
隐式转换不走索引。mysql默认字符串向整型进行转换,与其一个一个对索引进行转换,倒不如走全表扫描效率更高
优化:该是啥就用啥
select c from tab where c=‘111’;
c列是整型列select c from tab where c=‘111’;可以走索引,转换的是值不是索引

select c from tab where c like ‘%111%’;
前导模糊查询不走索引。mysql:前导模糊还查个锤子,我都不知道开头咋下手,倒不如走全表扫描效率更高
优化:如果可以尽可能把开头的%去掉,实在不行就算了

select * from tab where c>=1 and c <=2000;
范围查询某些情况不走索引。单次查询的数据量过大,优化器将不走索引
优化:一口气吃不成胖子,分段查
select * from tab where c>=1 and c <=1000;
select * from tab where c>1000 and c <=2000;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值