mysql 建立多个索引,加快查询速度

通过分析和优化MySQL查询,本文展示了如何通过建立多个索引来显著提高查询速度。案例中,针对不同的查询场景,分别采取了添加唯一索引和普通索引的方法,成功将查询时间从0.64s降低到0.00s,并对复杂的JOIN查询进行了优化,最终实现查询时间从4s降至0.0s。

最近有一个接口,客户端接到数据,耗时1秒,一般的常识是 100ms以内

在接口通过exit,断点,一个一个的尝试,发现问题出在一个myqsl查询上

在mysql里用sql查询了一下,发现是0.64s,请龙哥帮忙看了一下,他的建议是建立多个索引,加快查询速度。


案例1:

  • 一. 获取查询情况  explain  sql语句龙哥,发现没有索引

  • 二.查询是否可以建立索引,即判断是否是唯一的 UNIQUE 索引

  • 用 count('*')    group 这个字段,发现没有大于1的,说明了这个字段是唯一的

  • 三.增加 columnname为索引ALTER TABLE `tablename` ADD UNIQUE (`columnname`)在增加完后,继续查询发现,0.00s,速度真的快了补充,后来我在加查询的地方,又加了一个limit 1 ,养成好的查询习惯


案例2:

  • 一. 来一个复杂的 2个join 2个where 1个order by 的混合查询  发现用时 4s龙哥继续explain sql语句 发现从row是里,有一个35万行的查询,他的建议是建立索引

  • 二.发现这个columnname列不是唯一的,于是建一个普通的索引 index索引ALTER TABLE `tablename` ADD INDEX (`columnname`)

  • 三.继续explain 发现只有 41行了,看一下时间,用时变成 0.6s了

  • 四.龙哥针对 inner  join 优化,改为了  left join 结果用时变成 0.0s了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值