美团二面:当面对MySQL查询超过1000万条数据导致查询变慢的情况时,你是如何做优化的?

作者: 百里谈技术分类: 计算机技术 发布时间: 2024-04-15 20:06:03 浏览:16798 次

美团二面:当面对MySQL查询超过1000万条数据导致查询变慢的情况时,你是如何做优化的?

看不穿雾中百合:
一千万数据真不多,常见的几种方案,你就算直接利用索引我觉得单表 1s内都是完全没问题的,当然索引的设置也很关键。另外比较常用的手段就是延迟查询,通过子查询的方式将偏移量移到子集中并利用主键索引来查询,这样也可以大大提升查询效率。或者利用书签的方式来先找到对应位置再进行查询,另外外部的 nosql 也得跟上,防止并发量上去了导致你 db 压力太大了崩了。

小马过河丨:
总结:避免使用select *,换成具体的字段;按需查找字段,减少网络IO消耗;索引

Mikesya:
1000w数据真的放在现在撑不上大数据,合理建索引,索引覆盖差不多了

爱玩海龟汤的小星宇:
我选择直接上tidb,几亿条数据秒级查询兼容mysql协议

神通广大丿:
1kw有啥的,关键字段加个索引正常查就行。。

反对你就说他是杠精:
排序不是根据ID排序,或者id不是连续的是根据雪花算法得来的,你这个优化就不好使了 还有一种优化方法更通用, 先select id,然后in。

【回复】雪花 id 也可以,你搜搜有公式
【回复】回复 @椛兔- :就是把子查询的结果作为查询的in条件,这样子查询两次数据库,但这两次都会走索引,所以比全表快
【回复】回复 @椛兔- :不是的,是查两次数据库
havenlyun:
主键索引0.6秒,然后user_id添加了索引后0.1秒?怎么主键索引速度差这么多

【回复】我理解,主键索引存的具体的数据,辅助索引存的数据没有主键的多,一页存储的数据就多,而且又不用回表,所以,辅助索引的范围查询需要的I/O次数比主键的次数少,所以时间少

科技猎手 科技 mysql面试题 mysql面试 面试 数据库 计算机技术 MySQL java mysql优化

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

更多相关阅读