MySQL基礎 大幅度提高效能方案,分割槽表

2021-06-25 21:07:11 字數 1737 閱讀 5767

下面就筆者工作中遇到的時間問題,模擬一下情況對大家進行介紹. 

工作中仍然是海量資料出現的情況.每年大概會有幾億條記錄.而且資料的時效性比較強.但歷史資料仍然要求保留.這個時候經過分析和研究,最終決定通過時間字段進行分割槽.下面是分割槽表的建立**.讀者門在插入了不同年份時間段以後,可以時間欄位為條件進行查詢,可以看到資料庫掃瞄過的區段. 

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建立連線的成本很高,除了正常的網路連線三次握手外,還需要做登入許可權判斷和獲得這個連線的資料讀寫許可權。如何識別不工作執行緒?首...