网站的内容存储在MySQL数据库中。将启用99%的内容,但是某些(用户,帖子等)将被禁用。大多数查询以 WHERE (...) AND enabled

在“启用”字段上创建索引是一个好主意吗?

有帮助吗?

解决方案

仅在上面创建索引并不多 enabled 独自的。但是创建一个复合索引可能很有用 enabled 包括为了实现 通过优化顺序.

例如,如果这样的事情是一个常见的查询:

SELECT * FROM things WHERE c1='foo' AND enabled=1 ORDER BY c2

索引打开 c1 将允许快速找到匹配行,但仍需要在单独的步骤中使用 c2.

索引打开 c1, c2 应该允许从索引中进行订购,从而大大加快查询分类,但缺乏 enabled 在索引中会击败这一点,因为它必须编译由索引的匹配行列表 c1, 然后 扫描每一行以检查它 enabled 在对结果进行分类之前 c2.

如果指数是 enabled, c1, c2 或者 c1, enabled, c2, ,整个条件和顺序可以直接从索引中取出,从而更快地取得了结果。

与往常一样,这将取决于您在做什么问题;你应该 解释 您最常见的疑问,以确保它在做什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top