mysql alter table備忘

來源:互聯網
上載者:User

    在多數情況下,alter table 工作的時候都會拷貝一個目標表(暫且命名為a)的臨機操作備份(暫且命名為b),alter操作都是在備份檔案(b)上操作,然後刪除目標表(a),重新命名備份表(b)為目標表(a)。當alter table執行的時候,其他會話是可以讀目標表(a)的,但是update,write操作會被阻塞,直到b命名為a後,才可以重新導向到a,而不會丟失任何DML操作。這個暫存資料表b是和目標表a建立在同一個庫下的。

    下面是測試過程:

alter table cdb_posts drop index fid;
drop index fid on cdb_posts;
alter table cdb_posts add index idx_fid(fid);
create index idx_fid on cdb_posts(fid);

這幾個的操作過程一樣,都是:

拷貝到暫存資料表

建立的暫存資料表檔案:

如何在大資料量下快速建立索引,我見網上有文章說,先建立一個空表b,裡面加上索引欄位,然後insert into....select.....,然後再重新命名老表,重新命名b到目的表,再刪除老表,最初這個我在400W的表中測試,效率還不如直接alter table add index...,alter table add index花費時間:9min19.36sec,使用重新命名法:花費:11min17.69sec

參考資料:MySQL-alter table用法

相關文章

聯繫我們

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