gpt4 book ai didi

mysql - 在 MySQL 表的单个列上是否有任何特定使用具有不同索引名称的多个索引

转载 作者:行者123 更新时间:2023-11-29 06:36:40 25 4
gpt4 key购买 nike

我的数据库中有一个表,看起来像这样(名称已更改以符合保密协议(protocol))

CREATE TABLE `Job` (
`id` varchar(45) NOT NULL,
`type` int(11) NOT NULL,
`status` int(11) NOT NULL,
`created_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `JobTypeFK_idx` (`type`),
KEY `JobStatusFK_idx` (`status`),
KEY `JobTypeFK_idx1` (`type`),
KEY `JobStatusFK_idx1` (`status`),
KEY `JobParentIDFK_idx` (`parent_id`),
)ENGINE=InnoDB DEFAULT CHARSET=latin1;

我已经阅读了按照这个问题命名索引的重要性

不幸的是,它没有讨论同一列上有多个重复索引的情况。

还有一个问题,但是和SQL Server相关

很遗憾,我没有使用 SQL-Server。当我遇到重复的索引名称时,我正在清理模式以使用更新的 MySQL 功能,我想将其删除。我只是想知道我以后是否会遇到任何可能的问题?如果我一直担心破坏某些东西,那么我将永远无法清理架构。

最佳答案

据我所知,唯一使用索引名称的地方(除了用于修改和删除索引的 DDL 语句外)是在 index hints 中。 .这允许您建议或强制 MySQL 在查询中使用特定索引,并通过名称标识它们。如果您曾经使用过此功能,并且删除了查询所需的索引,则查询将出错。

由于此功能很少使用,您可以删除冗余索引而不用担心破坏任何东西。如果您确实使用了此功能,请确保删除未命名的索引。如果您有不同的查询在同一列上强制使用不同名称的索引,这种情况确实不太可能发生,请重写它们以使用相同的索引名称,然后删除另一个索引。

您可以在代码中搜索正则表达式:

\b(using|ignore|force)\s+(index|key)\b

查找此功能的任何用途。

关于mysql - 在 MySQL 表的单个列上是否有任何特定使用具有不同索引名称的多个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24195131/

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