gpt4 book ai didi

mysql - CREATE TABLE 语句中 KEY 的顺序重要吗?

转载 作者:行者123 更新时间:2023-11-29 20:44:28 24 4
gpt4 key购买 nike

注意:我四处搜寻,看看以前是否有人问过这个问题。我能找到的所有现有问题都询问复合索引排序,或现有表上查询的列排序。

假设我有下表:

CREATE TABLE `foobar` (
`foo_id` int(11),
`bar_id` int(11),
KEY `foo_id` (`foo_id`),
KEY `bar_id` (`bar_id`)
);

它有两个不相关的索引。如果我交换两个索引的定义,它可能看起来像这样:

CREATE TABLE `foobar` (
`foo_id` int(11),
`bar_id` int(11),
KEY `bar_id` (`bar_id`),
KEY `foo_id` (`foo_id`)
);

如果我在每个表上运行 SHOW CREATE TABLE foobar ,我可以看到每个表的 KEY 的顺序之间存在差异。我的问题是,这种特定情况下的顺序重要吗?我知道如果 foo_idbar_id 在复合索引中一起使用会很重要,但在这里它们不是。

如果确实重要,有没有办法在创建表后任意重新排列键? (类似于ALTER TABLE foobar ADD INDEX foo_id (foo_id) AFTER bar_id,我很确定所写的内容是无效的。)

最佳答案

按键没有视觉表示,并且不会增加以任何方式排列它们的任何开销。键设置功能只是为现有列添加质量,并且可以重新排列。

我能看到的唯一异常(exception)是,如果您使用某些 IDE(DB Forge、HeidiSQL、SequelPro 等),这些 IDE 将键值排列到它们生成的某些列表的顶部。然而,这是在解释它的系统方面,与数据库性能无关。

关于mysql - CREATE TABLE 语句中 KEY 的顺序重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38485891/

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