日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
MySQL修改表結(jié)構(gòu)時的拷貝問題

MySQL修改表結(jié)構(gòu)時難免會出現(xiàn)問題,而MySQL修改表結(jié)構(gòu)時拷貝的時間嚴(yán)重影響了MySQL修改表結(jié)構(gòu)的操作,下面就對該問題進(jìn)行分析。

10多年的南川網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整南川建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“南川網(wǎng)站設(shè)計(jì)”,“南川網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

mysql數(shù)據(jù)庫里,對一個已創(chuàng)建的表進(jìn)行DDL操作,比如說添加一個字段。在做測試時,發(fā)現(xiàn)ddl操作的時間特別的長。oracle里,通常情況下只是修改數(shù)據(jù)字典就可以了,操作時間非常的短,阻塞DML的時間也比較短。mysql數(shù)據(jù)庫對表進(jìn)行ddl操作跟oracle數(shù)據(jù)庫有很大的不同,它先要把原表拷貝一份到臨時表,這期間不阻塞select,阻塞所有的更改操作(update,delete,insert),對臨時表ddl操作完成,刪除原表,重命名臨時表。
如果一張比較大的表進(jìn)行ddl變更,比如說40G,那拷貝的時間讓人無法忍受,并且阻塞所有的DML操作,讓業(yè)務(wù)無法繼續(xù)。

以下是測試過程:

 
 
 
  1. [coolcode]  
  2. mysql> desc t1;  
  3. +————–+————-+——+—–+———+——-+  
  4. | Field | Type | Null | Key | Default | Extra |  
  5. +————–+————-+——+—–+———+——-+  
  6. | id | int(11) | YES | MUL | NULL | |  
  7. | nick | varchar(32) | YES | | NULL | |  
  8. | email | varchar(32) | YES | | NULL | |  
  9. | gmt_create | datetime | YES | | NULL | |  
  10. | gmt_modified | datetime | YES | | NULL | |  
  11. +————–+————-+——+—–+———+——-+  
  12. mysql> select count(*) from t1;  
  13. +———-+  
  14. | count(*) |  
  15. +———-+  
  16. | 2228017 |  
  17. +———-+  
  18. 1 row in set (1.78 sec)  
  19. [/coolcode]  
  20. 現(xiàn)在對它進(jìn)行表結(jié)構(gòu)變更,增加一列:  
  21. [coolcode]  
  22. mysql> alter table t1 add(tel varchar(20));  
  23. Query OK, 2304923 rows affected (41.03 sec)  
  24. Records: 2304923 Duplicates: 0 Warnings: 0  
  25. [/coolcode]  
  26. 在上述表結(jié)構(gòu)變更過程中,啟動另外一個會話,進(jìn)行select查詢操作和一個更新操作:  
  27. [coolcode]  
  28. mysql> select count(*) from t1;  
  29. +———-+  
  30. | count(*) |  
  31. +———-+  
  32. | 2304923 |  
  33. +———-+  
  34. 1 row in set (2.10 sec)  
  35.  
  36. mysql> select * from t1 limit 10;  
  37. +——+——-+——————+———————+———————+  
  38. | id | nick | email | gmt_create | gmt_modified |  
  39. +——+——-+——————+———————+———————+  
  40. | 0 | nick0 | nick0@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |  
  41. | 1 | nick1 | nick1@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |  
  42. | 2 | nick2 | nick2@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |  
  43. | 3 | nick3 | nick3@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |  
  44. | 4 | nick4 | nick4@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |  
  45. | 5 | nick5 | nick5@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |  
  46. | 6 | nick6 | nick6@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |  
  47. | 7 | nick7 | nick7@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |  
  48. | 8 | nick8 | nick8@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |  
  49. | 9 | nick9 | nick9@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |  
  50. +——+——-+——————+———————+———————+  
  51. 10 rows in set (0.00 sec)  
  52.  
  53. mysql> update t1 set nick=’test_nick’ where id=1;  
  54. Query OK, 4 rows affected (43.89 sec) –這里是阻塞的時間  
  55. Rows matched: 4 Changed: 4 Warnings: 0  
  56. [/coolcode]  
  57.  

通過以上實(shí)驗(yàn)可以看出,對表進(jìn)行ddl操作時,mysql并不阻塞select查詢,但會嚴(yán)重阻塞dml操作。另外,如果你要對表進(jìn)行ddl操作,由于有一個拷貝操作,你要計(jì)算好你的可用空間夠不夠?如果你的系統(tǒng)經(jīng)常要進(jìn)行MySQL修改表結(jié)構(gòu),那么你將不得不要考慮此問題!


網(wǎng)頁名稱:MySQL修改表結(jié)構(gòu)時的拷貝問題
分享鏈接:http://www.dlmjj.cn/article/djssohp.html