仅使用索引执行MySQL查询

时间:2014-02-27 08:18:59

标签: mysql

如果要在执行中使用索引(任何索引),我想在巨大的表上执行SELECT语句。我看过this,但请看一下:

“你也可以使用FORCE INDEX,它的作用类似于USE INDEX(index_list),但是假设表扫描非常昂贵。换句话说,只有在有扫描时才使用表扫描。无法使用其中一个给定索引来查找表中的行。“

这不是我想要的。我想要而不是“通过”全表扫描,MySQL回复给我一些错误/警告/信息,明确地告诉我由于没有可用的索引而无法执行查询。

这可以编程吗?我实际上在做的是从客户端页面接受参数,这些参数基本上是表中的任何列。所以,我想获取这些参数并将它们传递给WHERE子句,要求MySQL只通过索引执行结果查询。

1 个答案:

答案 0 :(得分:0)

在您的查询中使用EXPLAIN并检查key

EXPLAIN
SELECT * FROM users WHERE columnWithIndex = 4

您的结果将如下所示:

1   SIMPLE  users   ref indexName indexName 8   const   1   

如果key列不为null,sql将在您的查询中使用index,之后您可以运行它。