千萬層級資料量mysql最佳化策略(一)

來源:互聯網
上載者:User

標籤:結構   忽略   表結構   簡易   分區表   強制   nod   行儲存   rom   

表結構最佳化1.  使用獨立資料表空間

獨立資料表空間指的是innodb表的一種資料結構 

獨佔資料表空間:  每一個表都將會產生以獨立的檔案方式來進行儲存,每一個表都有一個.frm表描述檔案,還有一個.ibd檔案。 其中這個檔案包括了單獨一個表的資料內容以及索引內容,預設情況下它的儲存位置也是在表的位置之中。

2.  分區表

分區表是一種粗粒度,簡易的索引策略,適用於大資料的過濾情境.最適合的情境是,沒有合適的索引時,對其中幾個分區表進行全表掃描.或者只有一個分區表和索引是熱點,而且這個分區和索引能夠全部儲存在記憶體中.限制單表分區數不要超過150個,並且注意某些導致無法做分區過濾的細節,分區表對於單條記錄的查詢沒有優勢,需要注意這類查詢的效能.

 

根據表結構的特點可以將單表根據一些特定的條件來進行分區,例如一張表的資料是按照時間的先後順序進行插入的,那便可以根據時間戳記這個欄位來進行分區。

3.  記憶體資料庫

可以考慮將資料存入記憶體資料庫來加快資料查詢的速度。

 

Sql最佳化1.  多條件查詢下的強制(忽略)索引策略

強制索引 FORCE INDEX

SELECT * FROM TABLE1 FORCE INDEX (FIELD1) …

以上的SQL語句只使用建立在FIELD1上的索引,而不使用其它欄位上的索引。

忽略索引 IGNORE INDEX

SELECT * FROM TABLE1 IGNORE INDEX (FIELD1, FIELD2) …

在上面的SQL語句中,TABLE1表中FIELD1和FIELD2上的索引不被使用。

 

配合分區表的話一般來說強制使用的索引是分區表的分區條件欄位。

2.  盡量減少表的關聯使用單表進行查詢

大資料量的情況下如果使用表關聯的話,產生的笛卡兒積的數量太大資料庫進行條件過濾進行的計算耗費時間。

千萬層級資料量mysql最佳化策略(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.