我正在处理一个包含大量行(6 百万+)的数据库。
该表在两列上有一个复合主键。
它还在每个字段上都有单独的索引,因为有查询需要此索引。显然,这些索引之一(索引?)是多余的,会降低写入操作的性能。
如何找出哪一个是多余的?据我所知,主键的第一列已经建立索引,不需要单独建立索引。那是对的吗?如果是这样,我是否可以运行一个查询来找出列表中的第一个?
最佳答案
SHOW INDEXES FROM tablename
将包含一个 Seq_in_index
列,它告诉您哪一列是第一列(也称为最左边)、第二列等。
因此,列出的 Seq_in_index
值为 1
的列就是不需要自己的单列索引的列。
您还可以使用SHOW CREATE TABLE tablename
来查看从左到右列出的索引,正确显示的顺序代表了索引中列的顺序。
关于mysql - 索引中的列顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49462422/