下面就筆者工作中遇到的時間問題,模擬一下情況對大家進行介紹.
工作中仍然是海量資料出現的情況.每年大概會有幾億條記錄.而且資料的時效性比較強.但歷史資料仍然要求保留.這個時候經過分析和研究,最終決定通過時間字段進行分割槽.下面是分割槽表的建立**.讀者門在插入了不同年份時間段以後,可以時間欄位為條件進行查詢,可以看到資料庫掃瞄過的區段.
sql**
createtablepart_data
(c1intdefaultnull,
c2varchar(30)defaultnull,
c3datedefaultnull)
partitionbyrange (to_days(c3))
(partition p0valuesless than (to_days('1995-01-01')),
partition p1valuesless than (to_days('1996-01-01')) ,
partition p2valuesless than (to_days('1997-01-01')) ,
partition p3valuesless than (to_days('1998-01-01')) ,
partition p4valuesless than (to_days('1999-01-01')) ,
partition p5valuesless than (to_days('2000-01-01')) ,
partition p6valuesless than (to_days('2001-01-01')) ,
partition p7valuesless than (to_days('2002-01-01')) ,
partition p8valuesless than (to_days('2003-01-01')) ,
partition p9valuesless than (to_days('2004-01-01')) ,
partition p10valuesless than (to_days('2010-01-01')),
partition p11valuesless than maxvalue );
range 分割槽:基於屬於乙個給定連續區間的列值,把多行分配給分割槽。
分割槽查詢,可以檢視掃瞄過的區段.當然要加上where子句,以c3時間為條件進行檢索.若不使用時間字段,分割槽將失去作用.
以下語句掃過四個分割槽(p5,p6,p7,p8)
sql**
explain partitionsselect*frompart_data
where
c3c3>'2000-07-02';
MySQL基礎 大幅度提高效能方案,分割槽表
下面就筆者工作中遇到的時間問題,模擬一下情況對大家進行介紹.工作中仍然是海量資料出現的情況.每年大概會有幾億條記錄.而且資料的時效性比較強.但歷史資料仍然要求保留.這個時候經過分析和研究,最終決定通過時間字段進行分割槽.下面是分割槽表的建立 讀者門在插入了不同年份時間段以後,可以時間欄位為條件進行查...
Exists的妙用,大幅度提高查詢速度
這段時間碰到乙個模組,sql查詢特別的慢,一直在努力想辦法優化它。問題的 這是乙個生產加工的模組存在的問題,主從記錄。主表主要字段 狀態 未複核 0,複核 1,生產完成 3 id,主表記錄生產時間,客戶名稱,要求交貨日,下單人,下單時間等等,從表主要字段 貨品編號,貨品名稱,生產數量,領料數量,主記...
MySQL臨時提高效能方案
參考自 極客時間 22 mysql有哪些 飲鴆止渴 提高效能的方法?短連線 連線到資料庫執行很少sql後就被斷開。在業務高峰期,可能會出現連線數暴漲的問題。影響 mysql建立連線的成本很高,除了正常的網路連線三次握手外,還需要做登入許可權判斷和獲得這個連線的資料讀寫許可權。如何識別不工作執行緒?首...