我是新手。我正在使用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'
如果我的查询有任何改变,请建议我。
答案 0 :(得分:0)
Firstly
,你的意思是你在存储过程中创建索引吗?这是一个坏主意 - 如果你运行存储过程两次,它将失败,因为索引已经存在。
Secondly
,您的查询不使用索引中提到的列,因此不会产生任何影响。
Thirdly
,正如JodyT所写,查询分析器(SQL Server本身)将决定使用哪个索引;它几乎肯定比你好。
Finally
,为了加快您提到的查询速度,请在artc和atelr列上创建索引。
答案 1 :(得分:0)
在sql查询中没有索引。我们只在数据库结构上有它。
请使用
ALTER TABLE `tablename` ADD INDEX `entity_row_id` (`entity_row_id`)