首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提示在MySQL选择查询中使用的索引?

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

Stack Overflow用户
提问于 2012-07-31 01:12:59
回答 4查看 90K关注 0票数 44

我有一个MySQL查询(运行MySQL 5.0.88),我试图加快这个查询速度。基础表有多个索引,对于所讨论的查询,使用了错误的索引(i_active - 16.000行,对i_iln -7行)。

我对MySQL不是很有经验,但是读到有一个use index提示,它可以强迫mySQL使用特定的索引。我就是这样尝试的:

代码语言:javascript
复制
 SELECT art.firma USE INDEX (i_iln)
 ...

但是这会产生一个MySQL错误。

问题

有人能告诉我我做错了什么吗?(除了运行5.0.88,我无法更改。)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-31 01:15:06

你错过了

代码语言:javascript
复制
FROM table

正确的SQL应该是:

代码语言:javascript
复制
SELECT art.firma FROM your_table USE INDEX (i_iln) WHERE ....
票数 74
EN

Stack Overflow用户

发布于 2012-07-31 01:14:37

代码语言:javascript
复制
select * from table use index (idx);

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

票数 5
EN

Stack Overflow用户

发布于 2019-01-11 06:07:05

有时,使用使用索引(index_name)优化器可能会进行表扫描,如果使用提示强制索引,则优化器将被迫使用索引,只有在没有其他方法可以获得带有提供索引的行时,才会进行表扫描。

代码语言:javascript
复制
SELECT art.firma FROM art FORCE INDEX (i_iln);

有关提示的更多详细信息,请使用索引和FORCE索引,请检查此链接

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11731822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档