問題:乙個表sessionlog 每天以幾十萬的速度增長,而又需要對該錶進行實時查詢統計導致查詢速度越來越慢。
解決方案:建立資料倉儲來達到治本。
1、因為你表變化的資料只是當天的,而昨天之前(包括昨天的資料)是不變化的,其實,你的這個統計,主要的花費是在昨天之前資料(包括昨天的資料)歷史查詢上,如果我把每天都把昨天的資料彙總在乙個表裡,而明細表裡面只有當天的資料(這樣查詢當天的明細表就會相當快了,畢竟資料量很少),則實時查詢時,可以用「彙總表」+當天的明細表的實時查詢彙總 = 你要的結果
語句: sessionlogrpt為資料倉儲表
select id, max (time), sum (nroflogins) from ( select log .id, max ( log .time) time, count ( 1 ) + 1 nroflogins from sessionlog log where time > ' 2009-10-31 02:00:00 ' group by log .id union all select id,lastlogintime,logincnt from sessionlogrpt )t group by id
2、 在id和time上建立復合索引試試,因為要安裝這個分組和排序
實現乙個可以實時提示的textarea元件
該元件輸入 換行 變換游標可以實時給出提示 效果 請換行輸入不同的通知使用者 autosize v model inputvalue blur closehint input settinghint click.native settinghint keyup.native disposekey e...
乙個SQL語句實現的統計功能
前幾天,在qq群上有q友問到下面的問題 客戶 時間 金額 a 2006 10 1 200 a 2007 5 5 300 b 2006 1 1 400 實現如下結果 客戶 3個月以內 3 6個月 合計 a 200 300 500 b 400 400 下面就是sql實現 select 客戶,select...
統計乙個表的行數的最快的方法
計算乙個庫里各個表的記錄總數 select b.name,a.rowcnt from sysindexes a,sysobjects b where a.id b.id anda.indid 2and b.xtype u sum row count astotal number of rows fr...