有一張表里面已經(jīng)有幾千萬條數(shù)據(jù)了?
一般查詢的話應(yīng)該有常用的語句的。
比如常見查詢?yōu)?
select * from factdata where user='a' and module='b' and dtime between '2012-11-01 00:10:00' and '2012-11-01 00:11:10';
那么你這時(shí)候需要在factdata表上建立(user,module,dtime)的聯(lián)合索引。
alter table factdata add index i_merge(`user`,`module`,`dtime`);
你可以執(zhí)行
explain select * from factdata where user='a' and module='b' and dtime between '2012-11-01 00:10:00' and '2012-11-01 00:11:10';
查看建立索引前面的返回的結(jié)果。
假如沒有索引的話,explain會(huì)顯示返回查詢?nèi)淼臄?shù)據(jù)自然會(huì)很慢了。
假如用到了索引的話,可以快速的找到需要查詢的區(qū)間里的數(shù)據(jù),往往需要查詢的數(shù)據(jù)量是全表的1/100,1/1000,那么這時(shí)候花費(fèi)的時(shí)間就是1/100,1/1000了。