Mysql效能最佳化GUID主鍵

來源:互聯網
上載者:User

標籤:style   blog   http   ar   使用   sp   on   檔案   資料   

由於系統中大量使用GUID作為主鍵,導致資料檔案大,資料查詢速度慢。意向轉為Int主鍵。先查看下單表測試GUID和Int分別作為主鍵的結果。

測試條件如下:

AMD E1-1200 APU 1.4G 2GRam 100Lan, 250GB HD

Mysql 5.5,innodb_buffer_pool_size = 512M

測試表order_dish_history:60個欄位,共5個索引,4個guid索引,1個timestamp+PK索引用於表分區,其它欄位兩表完全相同;表分為12個分區每個月份一個分區,每個分區10萬條資料

GUID表及INT表資訊

10萬資料:

SELECT SQL_NO_CACHE SUM(dish_num),SUM(dish_money),SUM(dish_price),
AVG(dish_num),AVG(dish_money),AVG(dish_price),
MAX(dish_num),MAX(dish_money),MAX(dish_price)
FROM order_dish_history_int WHERE business_date BETWEEN ‘2014-01-01‘ AND ‘2014-01-02‘
GROUP BY dish_id

50萬資料:

讀取5個分表的資料,WHERE business_date BETWEEN ‘2014-01-01‘ AND ‘2014-05-02‘

100萬資料:

讀取10個分表的資料,WHERE business_date BETWEEN ‘2014-01-01‘ AND ‘2014-10-02‘

可以看出Int做主鍵在資料量大的時候,查詢速度和對機子記憶體的要求明顯勝出。

對錶結構的資料類型做更改

資料類型等根據資料取值範圍更改為tinyint,mediumint unsigned等。

對於分布式連鎖的,在總部採用了聯合主鍵。例如,可以取分店的唯一標識shop_id + 分店該表的主鍵

 

Mysql效能最佳化GUID主鍵

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.