MySQL-MYSQL普通索引的两种建立方式的区别

发布于 2016-11-24 12:04:05 字数 250 浏览 1357 评论 1

//  方式一,即很多个字段都使用一个索引名
KEY `lastpost` (`lastpost`,`scores`,`goodpost`,`badpost`,`notpost`)
// 方式二,一个字段一个索引名
KEY `column_id` (`column_id`),
KEY `title` (`title`),
KEY `posttime` (`posttime`),
KEY `attr` (`attr`)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瑾兮 2017-08-22 22:12:41

多个单列索引,MySQL只能用到其中的那个它认为似乎是最有效率的单列索引。

条件复杂时,组合索引肯定比单列性能要好,但一些额外条件下不同.

有一篇文章就是介绍这个的,Multi Column indexes vs Index Merge,具体你可以看这篇文章,我只说下结论

对于具有2个用and连接条件的语句,且2个列之间的关联度较低的情况下,组合索引有一定优势。
对于具有2个用and连接条件的语句,且2个列之间的关联度较高的情况下,组合索引有很大优势。
对于具有2个用or连接条件的语句,单列索引有一定优势,因为这种情况下组合索引
将会导致全表扫描,而前者可以用到index merge的优化。

数据对比

2个单列索引 一个列 复合索引
低关联度and 70ms 290ms 10ms
高关联度and 360ms 290ms 300ms
or 66ms 3370ms

资料参考
复合索引和多个单列索引的效率比较

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文