如何提示在MySQL选择查询中使用的索引?

时间:2012-07-31 01:12:59

标签: mysql sql indexing hint

我有一个MySQL查询(运行MySQL 5.0.88),我正在努力加快速度。基础表有多个索引,对于有问题的查询,使用了错误的索引(i_active - 16.000行,而i_iln - 7行)。

我对MySQL不是很熟悉,但是读了一个use index提示,可以强制mySQL使用某个索引。我正在尝试这样:

 SELECT art.firma USE INDEX (i_iln)
 ...

但这会产生MySQL错误。

问题
谁能告诉我我做错了什么? (除了运行5.0.88,我无法改变。)

4 个答案:

答案 0 :(得分:51)

您错过了FROM table

正确的SQL应该是:

SELECT art.firma FROM your_table USE INDEX (i_iln) WHERE ....

答案 1 :(得分:5)

select * from table use index (idx);

http://dev.mysql.com/doc/refman/5.0/en/index-hints.html

答案 2 :(得分:0)

有时,使用使用索引(index_name)的优化器可能会进行表扫描,如果您使用提示 force index ,则优化器将被强制使用索引,仅在没有其他方法获取具有提供的索引的行的情况下才进行表扫描。

LoginConroller

有关提示的更多详细信息,使用索引强制索引,请选中此link

答案 3 :(得分:-1)

  

选择Coloumn1,Coloumn2,Coloumn .... FROM TABLE_NAME USE INDEX index_name )        WHERE Coloumn =" condition&#34 ;;

如果你有正确的索引,你就不需要使用index()。你的查询自动选择正确的索引。如果你的查询在使用索引后重新检查你的索引,那么索引就出错了。 在此先感谢。输入代码