首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何添加覆盖所有WHERE需求的索引

如何添加覆盖所有WHERE需求的索引
EN

Stack Overflow用户
提问于 2014-12-15 14:59:38
回答 1查看 27关注 0票数 0

我有一个慢,根据我的朋友是它,因为没有索引涵盖我所有的WHERE需求。如果我运行EXPLAIN,您将看到查询使用的是: user_table_id索引,这很好,但是查询还过滤了project_table_id和date_of_activity,它们不是索引的一部分。因此,我需要的是在所有3列上创建一个组合索引,但不确定从哪里开始或如何做。让我知道如果你也有更好的想法,使这个查询更快。

我的问题是:

代码语言:javascript
复制
SELECT time_activity_log.time_activity_log_id, time_activity_log.user_table_id, time_activity_log.project_table_id, time_activity_log.time_activity_id, time_activity_log.time_activity_log_id, time_activity_log.date_of_activity, time_activity_log.no_of_hours, time_activity_log.billable, time_activity_log.notes, time_activity_log.add_as_bugnote, time_activity_log.email_note, time_activity_log.make_note_private, time_activity_log.date_created, time_activity_log.date_updated 
FROM time_activity_log 
WHERE ( time_activity_log.date_of_activity >= 1412136000 AND time_activity_log.date_of_activity <= 1414814399 ) 
AND time_activity_log.project_table_id in (6,13,16,24,26,37,40,45,51,62,64,75,131,132,134,138,152,148,186,183,189,190,191,210,220,227,240,242,245,246,247,253,257,258,261,276,277,278,279,280,281,282,291,288,289,290,294,320,321,322,329,335,349,351,352,379,380,381,382,383,384,385,386,387,388,389,394,403,406,407,415,416,424,433,435,436,444,449,455,456,457,458,469,470,481,482,483,484,485,486,488,489,490,492,499,504,505,506,507,510,512,513,514,516,517,518,519,520,521,522,523,524,525,527,528,529,530,532,533,534,535) 
AND time_activity_log.user_table_id = 688 
ORDER BY time_activity_log.date_of_activity

到目前为止,当我解释的时候,我会得到:

代码语言:javascript
复制
id : 1
select_type : SIMPLE
table : time_activity_log
type : ref
possible keys : user_table_id,project_table_id,idx_date_of_activity
key : user_table_id
key_len : 4
ref : const
rows : 2817
extra : Using where; Using filesort
EN

Stack Overflow用户

发布于 2014-12-15 15:03:53

一次只能使用一个索引。如果您想在所有3列上使用索引,则必须创建一个复合索引:

代码语言:javascript
复制
ALTER TABLE time_activity_log ADD INDEX (project_table_id, user_table_id, date_of_activity)
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27478846

复制
相关文章

相似问题

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