老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

mysql加快alter操作

場景:

    MySQL的alter table 操作的性能對大表來說是個大問題.mysql執行大部分修改表結構的操作方法是用新的結構創建一個空表,從舊表中查出所有數據插入新表,然后刪除舊表.這樣操作可能花費很長時間,如果內存不足而表又很大,而且還有很多索引的情況下,此種情況更甚.

鳳山ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯建站的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

    一般而言,大部分alter table操作將導致mysql服務中斷,對于常見場景,能使用的技巧有兩種,一種是先在一臺不提供服務的機器上執行alter table操作,然后和提供服務的主庫進行切換,另外一種是影子拷貝.影子拷貝的技巧是用要求的表結構創建一張和原表無關的新表,然后通過重命名和刪表的操作交換兩張表.

    不是所有的alter table操作都會引起表的重建,列如有兩種方法可以改變或刪除某個列的默認值.

mysql > alter table test modify column test tinyint(3) not null default 5;

show status 顯示了這個語句做了上千次讀和上千次插入,換句話說,它拷貝了一張表到一張新表.

理論上,mysql 可以跳過創新表的步驟,列的默認值實際上存在表的.frm文件中,所以可以直接修改這個文件而不需要改動表本身.然而mysql還沒有采用這種優化方法,所有的modify column操作都將導致表重建.

mysql>alter table test alter column  test set default 5;

這個語句會直接修改.frm文件而不涉及表數據.所以,這個操作是非??斓?

由此可以看出,修改表的.frm文件是很快的,但是mysql有時候會在沒必要的時候也重建表.如果愿意冒一些風險,可以讓mysql做一些其他類型的修改而不用重建表.但是在執行前首先應備份數據,該操作不受官方支持.

下面這些操作可能不需要重建表:

(1)移除(不受增加)一個列的auto_increment屬性

(2)增加,移除,或者更ENUM和SET常亮.如果移除的是已經有行數據用到其他值的常量,查詢將會返回一個空子串值.

基本的技術是為想要的表結構創建一個新的.frm文件,然后用它替換掉已經存在的表的.frm文件,像下面這樣:

  • 創建一張有相同表結構的空表,并進行所需要的修改(列如增加ENUM常量)

  • 執行flush tables with read lock.這將會關閉所有正在使用的表,并禁止任何表被打開.

  • 交換.frm文件

  • 執行unlock tables來釋放第2步的讀鎖.

mysql> show columns from film like 'rating';
+--------+------------------------------------+------+-----+---------+-------+
| Field  | Type                               | Null | Key | Default | Extra |
+--------+------------------------------------+------+-----+---------+-------+
| rating | enum('G','PG','PG-13','R','NC-17') | YES  |     | G       |       |
+--------+------------------------------------+------+-----+---------+-------+
1 row in set (0.00 sec)

假設我們增加一個PG-14的電影分支.

mysql> create table film_new like film;
Query OK, 0 rows affected (0.26 sec)
mysql> select * from film_new;
Empty set (0.00 sec)
mysql> alter table film_new modify column rating ENUM('G','PG','PG-13','R','NC-17','PG-14') default 'G';
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.01 sec)

注意:我們是在常量列表的末尾增加一直新值

利用操作系統命令交換.frm文件

[root@host1 sakila]# mv film.frm film_temp.frm
[root@host1 sakila]# mv film_new.frm film.frm
[root@host1 sakila]# mv film_temp.frm film_new.frm
[root@host1 sakila]#

再回到mysql就可以解鎖表和更改后的效果了

mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql> show columns from film like 'rating';
+--------+--------------------------------------------+------+-----+---------+-------+
| Field  | Type                                       | Null | Key | Default | Extra |
+--------+--------------------------------------------+------+-----+---------+-------+
| rating | enum('G','PG','PG-13','R','NC-17','PG-14') | YES  |     | G       |       |
+--------+--------------------------------------------+------+-----+---------+-------+
1 row in set (0.01 sec)

網站名稱:mysql加快alter操作
網站地址:http://www.xueling.net.cn/article/jghggc.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 久久亚洲春色中文字幕久久久 | 国产在线观看av黑料在线不打烊 | 播放灌醉水嫩大学生国内精品 | 免费无码午夜福利片69 | 国产高清精品无码二区 | 黑人中文字幕一区二区三区 | heyzo无码中文字幕在线 | 国产亚洲日韩一区二区三区 | 日本少妇被黑人猛cao | 国产精品久久精品三级 | 初尝黑人巨砲波多野结衣 | 9277在线观看免费播放 | 日本亚洲中文字幕不卡 | 欧美天堂精品久久久久久久噜噜噜 | 成人18视频在线观看 | 一区二区三区国产在线观看 | 女社长湿润丝袜在线观看 | 国产三级精品三级在线专区 | 国产色视频一区二区三区QQ号 | av在线不卡播放 | 天堂网WWW天堂在线 亚洲欧美日韩愉拍自拍 | 国产精品亚洲第一区二区三区 | 一区二区三区人妻无码 | 国产的一级片 | 国产产品亚洲产品 | 久久成人人人人精品欧 | 日韩一区二区三区高清免费看看 | 91噜噜噜| 日日操日日| 中文字幕乱码一区二区 | 国产成人无码VA在线观看 | 久久精品三级视频 | 96sao精品视频在线观看 | 高潮潮喷奶水飞溅视频无码 | 久久国产精品亚洲 | 欧美性生交xxxxx | 日本www在线 | 国产91欧美 | freesexvideos性少妇kant | 互换人妻500部 | 小柔在教室轮流澡到高潮视频 |