2011-09-26 98 views

回答

2

不!

您应该始终考虑索引选择性!如果索引上的where子句的结果将返回超过表的20%,那么该索引不会被使用,但会被忽略。

因此,例如,您的视频的状态将是1,2,3,那么你有3个可能的状态。如果这些指数分布均匀,我们可以认为其中有33.3%是适合的。随后,查询:

select * from video where status = 1 

将不使用索引!相反,将使用FULL TABLE SCAN。

请仔细阅读。这真的很重要,也是一个常见的错误。

Google search

0

我肯定会使用索引。他们使选择更快。但是如果有很多插入表格的话,我会再想一想。插入语句上的索引会增加很多重载,并且插入语句会很慢,因为每次插入时都必须重新构造索引。

2

如果您创建此查询的索引,试图(status, filter, category)(顺序可能会有所不同)。

但这取决于您的表格行的百分比是多少​​。最小的百分比,您的查询将使用索引运行得越好。正如santiagobasulto指出的那样,如果索引选择性不高,那么索引将不会用于查询,但会对表进行全面扫描。

相关问题