的优化和索引学习一个索引示例牛
民生呼声 2021-08-24 17:41 字号: 大 中 小
Schema的优化和索引 - 学习一个索引示例5
对于排序的优化
这个示例中我们所关心最后一个优化就是排序。排序小量规模的数据使用文件排序是很快的,但是如果有百万级别的呢?比如,查询条件只有个SEX的情况?
对于这种低选择性的情况,我们可以添加特殊的索引。比如,一个索引(sex,rating)可以适用于下列查询:
SELECT cols FROM profiles WHERE sex=\'M\' ORDER BY rating LIMIT 10;
这个查询有ORDER BY 和LIMIT,并且它如果没有索引会非常之慢。
即使加上了索引,如果用户接口是分页并且用户请求的页并不是靠近数据开始的位置,查询还是很慢。语句如下:
在游戏自由度的上做出了许多进化 mysql SELECT cols FROM profiles WHERE sex=\'M\' ORDER BY rating LIMIT 100000, 10;
这样的语句还是有问题,和加不加索引没什么关系。因为太高的数据偏移导致了MySQL不得不扫描没用的行。反规范的,提前计算的,缓存可能是处理这种语句比较好的方法。一个更好点的策略是限制用户可以查看的页数。这不太会影响用户体验,因为不会有人关心10000页以后的查询结果。
另一个优化这种语句比较好的方法是使用一个覆盖索引去重新获取行的主键。你能连接这个返回的表获得所需要的列。这些可以最小化MySQL的工作量,这些工作就是MySQL必须要收集它所要抛弃的数据。下面的例子就是针对这个语句的优化
mysql SELECT cols FROM profiles INNER JOIN (
- SELECT primary key cols FROM profiles
- WHERE x=\'M\' ORDER BY rating LIMIT 100000, 10
- ) AS x USING(primary key cols);
女性补气血吃什么补得快兰州治疗宫颈糜烂费用
北京不孕不育医院治疗费用
-
-
温州购房门事件中两官员受贿被判刑搭配
温州“购房门”事件中两官员受贿被判刑温州“购房门&rdq...
2020-06-06 | 民生呼声
-
-
南中轴构建大国首都新客厅北京金茂府尽致美搭配
南中轴构建大国首都新客厅,北京金茂府尽致美好风口首都,是...
2020-06-06 | 民生呼声
-
-
袁心玥全运会是人生一坎学心理学有助排球生搭配
袁心玥:全运会是人生一坎 学心理学有助排球生涯袁心玥扎起...
2020-06-01 | 民生呼声
-
-
卢卡库告诫队友别怕穆帅骂你解决问题就没事搭配
卢卡库告诫队友:别怕穆帅骂你 解决问题就没事了卢卡库一直...
2020-05-27 | 民生呼声
-
-
我市获省级社区居家养老奖补资金扶持
我市获省级社区居家养老奖补资金扶持日前,我市争取省级社...
2019-07-13 | 民生呼声
-
-
沭阳县多项措施推进生态殡葬建设
沭阳县多项措施推进生态殡葬建设近年来,沭阳县始终坚持绿...
2019-07-13 | 民生呼声