仅使用索引执行MySQL查询

仅使用索引执行MySQL查询,mysql,Mysql,我只想在执行中使用索引(任何索引)时,在一个巨大的表上执行SELECT语句。我已经读过了,但看看这里: 您也可以使用强制索引,它的作用类似于使用索引(INDEX_list),但另外,表扫描被认为是非常昂贵的。换句话说,只有在无法使用给定索引之一查找表中的行时,才使用表扫描 那不是我想要的。我希望MySQL不要“跌破”到一个完整的表扫描,而是返回给我一个特定的错误/警告/信息,明确地告诉我查询无法执行,因为没有可用的索引 这在编程上是可能的吗?我实际做的是从客户端页面接受参数,这些参数基本上是表中

我只想在执行中使用索引(任何索引)时,在一个巨大的表上执行SELECT语句。我已经读过了,但看看这里:

您也可以使用强制索引,它的作用类似于使用索引(INDEX_list),但另外,表扫描被认为是非常昂贵的。换句话说,只有在无法使用给定索引之一查找表中的行时,才使用表扫描

那不是我想要的。我希望MySQL不要“跌破”到一个完整的表扫描,而是返回给我一个特定的错误/警告/信息,明确地告诉我查询无法执行,因为没有可用的索引


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

在查询中使用
EXPLAIN
,并选中
key

EXPLAIN
SELECT * FROM users WHERE columnWithIndex = 4
您的结果将如下所示:

1   SIMPLE  users   ref indexName indexName 8   const   1   

若键列不为空,sql将在您的查询中使用索引,您可以在以后运行它。

使用
解释
并检查是否将使用索引?(但请注意,这并不是一个保证——很少有解释和实际情况可能不同的情况)谢谢,我忘了说我希望以编程方式完成。我在问题上加了这个,这就是问题所在?你可以做到。即首先通过
EXPLAIN
进行查询。然后,如果相应的列符合您的期望,则运行查询