我的方案最棒的是什么
我有一张包含近20,000,000条记录的表格,基本上存储了用户在网站上所做的事情
id
- > primary int 11 auto increment user_id
- > index int 11 not null create_date
- > (还没有索引)date-time not null 我知道我必须在create_date上放一个索引,但是我要放一个列索引还是一个双列,哪一个首先放在双索引上(给定大量记录)?
顺便说一下,我现在使用的查询就像:
select max(id) -- in here I'm selecting actions that users have done, after this date, since date is today
from table t
where
t.create_date >= '2014-12-29 00:00:00'
group by t.user_id
答案 0 :(得分:1)
您可以使用SELECT的EXPLAIN PLAN编辑您的问题吗? EXPLAIN Link。同时,你可以试试这个:
首先使用最严格的条件构建索引。我认为在你的情况下,create_date + user_id
会更好CREATE INDEX index_name ON table_name(create_date,user_id);