【发布时间】:2015-04-17 19:30:19
【问题描述】:
我对我的查询运行解释,我得到了这些结果:
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY bussiness index PRIMARY,closeBussStatus,bussStatus,approveStatus,cityID,presaleID,nameEn,DUNS,xy,subCategoryID PRIMARY 4 NULL 295794 Using where; Using temporary; Using filesort
1 PRIMARY favourites ref userID,bussID,userId_bussId bussID 4 haanet.bussiness.bussID 1 Using where
3 DEPENDENT SUBQUERY rating ref bussId bussId 4 func 1 NULL
2 DEPENDENT SUBQUERY rating ref bussId bussId 4 func 1 Using index
这表明对于第一个表有很多可能的键,但它只是选择一个索引。为什么 MySQL 不为每个表使用多个索引?
【问题讨论】:
-
请显示相关查询。
-
请尽可能发布纯文本,例如
SHOW CREATE TABLE的输出,而不是小而难以辨认的屏幕截图。 -
@tadman 好的,我会的,一分钟!
-
@wallyk 我已经添加了查询
-
您需要向我们展示表和索引定义,以及每个表的行数。也许您的表格定义不佳。也许索引没有正确创建。也许您认为您在该列上没有索引。没有看到表和索引定义,我们无法判断。我们需要行计数,因为这会影响查询计划。