如何在SQL查询上使用索引?

时间:2014-04-17 05:48:42

标签: mysql sql mysql-workbench

我是新手。我正在使用MySql Workbench。 I want to use index on select clause.所以性能会提高。看看我试过的查询。

SELECT entity_row_id
FROM entity_association USE INDEX(entity_row_id)
WHERE assoc_entity_row_id IN ('1123')
  AND (deleted =0
       OR deleted IS NULL)

我收到此错误。但该列存在于entity_association表中。

Error: 1176. Key 'entity_row_id' doesn't exist in table 'entity_association'

如果我的查询有任何改变,请建议我。

2 个答案:

答案 0 :(得分:0)

如何在SQL查询上使用索引?

Firstly,你的意思是你在存储过程中创建索引吗?这是一个坏主意 - 如果你运行存储过程两次,它将失败,因为索引已经存在。

Secondly,您的查询不使用索引中提到的列,因此不会产生任何影响。

Thirdly,正如JodyT所写,查询分析器(SQL Server本身)将决定使用哪个索引;它几乎肯定比你好。

Finally,为了加快您提到的查询速度,请在artc和atelr列上创建索引。

答案 1 :(得分:0)

在sql查询中没有索引。我们只在数据库结构上有它。

请使用

ALTER TABLE `tablename` ADD INDEX `entity_row_id` (`entity_row_id`)