MYSQL索引性能的问题
巴扎黑
巴扎黑 2017-04-17 11:18:40
[MySQL讨论组]

有一个表大约 120 万数据。有两个字段 a, b 建立了 INDEX 联合索引。

单独根据 a 字段查询速度还算比较快,但是如果根据 b 字段查询,速度慢的掉渣了...请问怎么才能让:

根据 a 查询
or
根据 b 查询
or
同时根据 a 和 b 查询

都能快起来呢?

巴扎黑
巴扎黑

全部回复(2)
巴扎黑

在联合索引的情况下,根据最左优先原则,联合索引只对同时查询两个字段或者第一个字段的时候才起作用。

比如,对(a, b)建立了索引,那么会有下面的结果。

SELECT * FROM table WHERE a='foo' // 索引有效
SELECT * FROM table WHERE b='bar' // 索引无效
SELECT * FROM table WHERE a='foo' and b='bar' // 索引有效

因此如果要让单独查询 b 的时候,索引也起作用,就得对 b 单独做一个索引。

按照题主现在的情况,ab联合索引可以不要了,对ab分别做索引即可。

黄舟

a和b都做索引,分别做

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号