欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中大數(shù)據(jù)表增加字段的實(shí)現(xiàn)思路

 更新時(shí)間:2017年01月20日 15:08:14   作者:小談博客  
最近遇到的一個(gè)問題,需要在一張將近1000萬數(shù)據(jù)量的表中添加加一個(gè)字段,但是直接添加會(huì)導(dǎo)致mysql 奔潰,所以需要利用其他的方法進(jìn)行添加,這篇文章主要給大家介紹了MySQL中大數(shù)據(jù)表增加字段的實(shí)現(xiàn)思路,需要的朋友可以參考借鑒。

前言

增加字段相信大家應(yīng)該都不陌生,隨手就可以寫出來,給 MySQL 一張表加字段執(zhí)行如下 sql 就可以了:

ALTER TABLE tbl_tpl ADD title(255) DEFAULT '' COMMENT '標(biāo)題' AFTER id;

但是線上的一張表如果數(shù)據(jù)量很大呢,執(zhí)行加字段操作就會(huì)鎖表,這個(gè)過程可能需要很長(zhǎng)時(shí)間甚至導(dǎo)致服務(wù)崩潰,那么這樣操作就很有風(fēng)險(xiǎn)了。

那么,給 MySQL 大表加字段的思路如下:

① 創(chuàng)建一個(gè)臨時(shí)的新表,首先復(fù)制舊表的結(jié)構(gòu)(包含索引)

create table new_table like old_table;

② 給新表加上新增的字段

③ 把舊表的數(shù)據(jù)復(fù)制過來

insert into new_table(filed1,filed2…) select filed1,filed2,… from old_table

④ 刪除舊表,重命名新表的名字為舊表的名字

不過這里需要注意,執(zhí)行第三步的時(shí)候,可能這個(gè)過程也需要時(shí)間,這個(gè)時(shí)候有新的數(shù)據(jù)進(jìn)來,所以原來的表如果有字段記錄了數(shù)據(jù)的寫入時(shí)間就最好了,可以找到執(zhí)行這一步操作之后的數(shù)據(jù),并重復(fù)導(dǎo)入到新表,直到數(shù)據(jù)差異很小。不過還是會(huì)可能損失極少量的數(shù)據(jù)。

所以,如果表的數(shù)據(jù)特別大,同時(shí)又要保證數(shù)據(jù)完整,最好停機(jī)操作。

另外的方法:

1.在從庫進(jìn)行加字段操作,然后主從切換

2.使用第三方在線改字段的工具

一般情況下,十幾萬的數(shù)據(jù)量,可以直接進(jìn)行加字段操作。

總結(jié)

以上就是關(guān)于在MySQL大表中加字段的實(shí)現(xiàn)思路,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • MySQL 8.0的關(guān)系數(shù)據(jù)庫新特性詳解

    MySQL 8.0的關(guān)系數(shù)據(jù)庫新特性詳解

    廣受歡迎的開源數(shù)據(jù)庫MySQL 8中,包括了眾多新特性,下面這篇文章主要給大家介紹了關(guān)于MySQL 8.0的關(guān)系數(shù)據(jù)庫新特性的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2018-03-03
  • 最新評(píng)論