高效能mysql讀書筆記(一):Schema與資料類型最佳化

來源:互聯網
上載者:User

標籤:

4.5 加快ALTER TABLE 操作的速度

原理:

MySQL 的ALTER TABLE 操作的效能對大表來說是個大問題。

MySQL 執行大部分修改表結構操作的方法是用新的結構建立一個空表,從舊錶中查出所有資料插入新表,然後刪除舊錶。這樣操作可能需要花費很長時間,如果記憶體不足而表又很大,而且還有很多索引的情況下尤其如此

特點:

  • 大部分ALTER TABLE 操作將導致MySQL 服務中斷
  • ALTER TABLE 本質是建新結構的表,從舊錶插入資料到新表 (SHOW STATUS 顯示這個語句做了1 000 次讀和1 000 次插入操作)
  • ALTER table 會鎖表,整個表是唯讀鎖定

解決辦法:

1:一種是先在一台不提供服務的機器上執行ALTER TABLE 操作,然後和提供服務的主庫進行切換;

2:另外一種技巧是“影子拷貝”。影子拷貝的技巧是用要求的表結構建立一張和源表無關的新表,然後通過重新命名和刪表操作交換兩張表。

 

高效能mysql讀書筆記(一):Schema與資料類型最佳化

聯繫我們

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