gpt4 book ai didi

sql - MySQL: `... ADD INDEX(a); ... ADD INDEX(b);` 和 `... ADD INDEX(a,b);` 之间的区别?

转载 作者:行者123 更新时间:2023-11-29 01:12:33 29 4
gpt4 key购买 nike

谁能告诉我这两者有什么区别:

ALTER TABLE x1 ADD INDEX(a);
ALTER TABLE x1 ADD INDEX(b);

ALTER TABLE x1 ADD INDEX(a,b);

我知道这是最基本的,但有时我发现前者似乎比后者快一点。这只是我的感觉还是有一些实际原因?

最佳答案

组合的 INDEX 是键“a”和“b”的组合。如果“a”或“a”和“b”是搜索表达式的一部分,它会显着改善访问。

如果您在 SQL 语句中仅提供“b”,则此索引没有帮助。

因此,提供两个不同的索引可能会有用 - 但它们应该使用不同的名称。

根据访问模式,我建议在“a”和“b”上建立索引,如果满足您的需要,我会在“b”上建立额外的索引。

请记住,任何额外的索引都会减慢数据库在所有修改数据的操作上的速度。有时最好远离一些索引。通常最好不要在表的任何列上使用索引。

还有一个提示:要确定应该使用 INDEX(a,b) 还是 INDEX(b,a),请查看数据的分布。将不同值分布较大的值放入索引的第一列,以增加该索引的选择性。该值通常基于第一个索引元素的质量。

例如,列 NAME 和 SEX 上的索引应创建为 INDEX(NAME, SEX),因为有更多不同性别的名称(是吗?)。

关于sql - MySQL: `... ADD INDEX(a); ... ADD INDEX(b);` 和 `... ADD INDEX(a,b);` 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2291193/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com