我正在使用这个结构:
id | name | parent_id | lft | rght
看起来现在所有这些列上都有一个手动添加的索引。每列的 Index_type 为 BTREE,排序规则为 A。
我正在与另一个人的 table 合作解决这个问题,并试图找到一种加快速度的方法。这是我第一次使用数据库,但从 StackOverflow 上找到的其他 Material 来看,一些人建议在多个列上添加索引(例如 this)。
其他帖子引用了唯一索引与空间索引以及索引此类结构背后的其他概念。您认为像这样的优化嵌套集需要什么才能运行最快?我想使用这些索引,并且如果之前的索引添加错误或者不是正确的索引类型,则可以废弃它们。
最佳答案
查询优化器只会选择一个索引。拥有多列索引(又名复合索引)可能很有用。但是,这取决于您将在表上运行哪种查询。
如果您有复合索引,它仍然适用于树中的第一列。所以,假设您在 A、B、C 上有一个复合索引。如果您正在运行只需要 A 列的查询,它仍然可以工作。但是,它将 A、B、C 的整个索引加载到缓存中。您可能会遇到内存问题,尤其是当您的索引位于大型 varchar 字段上时。
您可以阅读有关复合索引的更多信息 HERE .
关于mysql - 如何在 MySQL 中正确索引嵌套集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29021995/