更新大資料的表結構的緩和做法

來源:互聯網
上載者:User

標籤:

情境

前些天遇到一個問題,要往線上資料庫中資料量比較大的表格裡添加新的欄位,以及賦上預設值,
執行的時間比較長,如果直接在原表格的基礎上直接執行sql,害怕會將表格甚至是資料庫弄成死結。
和團隊兄弟聊了聊找到了一種辦法,不知道的也可以借鑒一下。

解決辦法根據源表格建立一個暫存資料表格

CREATE TABLE t_bdcards_temp LIKE t_bdcards;

給暫存資料表格添加一個欄位

ALTER TABLE t_bdcards_temp
ADD COLUMN bookId BIGINT (80) NULL
DEFAULT NULL
COMMENT ‘對應的書籍id‘ AFTER user_id;

將源表格的資料插入到暫存資料表格中

INSERT INTO t_bdcards_temp (
card_num,
STATUS,
ctime,
user_id,
bookId
) SELECT
card_num,
STATUS,
ctime,
user_id,
100031
FROM
t_bdcards;

驗證資料是否正確

SELECT
count(id)
FROM
t_bdcards_temp;

SELECT
count(id)
FROM
t_bdcards;

將源表名修改成另外一個名詞

RENAME TABLE t_bdcards TO t_bdcards_blank;

將暫存資料表格修改成源表格的名稱

RENAME TABLE t_bdcards_temp TO t_bdcards;

更新大資料的表結構的緩和做法

相關文章

聯繫我們

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