MySQL 分表有什么壞處和改進(jìn)意見(jiàn)?
問(wèn)題描述
如果一張表數(shù)據(jù)很大,將分表拆分?jǐn)?shù)據(jù),或者預(yù)估數(shù)據(jù)量很大,會(huì)預(yù)先生成很多分表,那么,日后要改字段,豈不是每張表都是執(zhí)行同樣的 sql 改字段?
MySQL 還有分區(qū)的概念,就是解決一張表數(shù)據(jù)量過(guò)大的,為什么現(xiàn)實(shí)開(kāi)發(fā)中還是普遍使用分表的方式?
問(wèn)題解答
回答1:我認(rèn)為不管是數(shù)據(jù)庫(kù)還是編程的各種模式,并不是說(shuō)0耦合就是最好的。適當(dāng)?shù)娜哂嗫梢蕴岣咝阅埽涂勺x、維護(hù)性。
回答2:個(gè)人愚見(jiàn),分區(qū)是你指定規(guī)則進(jìn)行分表,比較死板。分表可以在業(yè)務(wù)邏輯層上進(jìn)行靈活的熱點(diǎn)數(shù)據(jù)分表。
回答3:一個(gè)表的容量還是有限的,數(shù)據(jù)越多插入性能就會(huì)受影響,每次插入都要去尋找對(duì)應(yīng)分區(qū),還有索引,都會(huì)大大降低插入速度。
至于分表的壞處,當(dāng)然就是你說(shuō)的如果需要修改字段,那就要每張表都去執(zhí)行,但這種可能性小,況且之前的數(shù)據(jù)都已成為歷史數(shù)據(jù)了,而如果你把數(shù)據(jù)都放一張表里,改表結(jié)構(gòu)不就把表鎖住了?從這個(gè)方面來(lái)看,分表還可以做到讀寫(xiě)分離。另一個(gè)壞處就是查詢(xún)需要union分表,需要用while去拼接sql,這是有點(diǎn)繁瑣的,恰恰分區(qū)不用拼接。。。
因此實(shí)際中,分表和分區(qū)常常是結(jié)合的,各自互補(bǔ)。
相關(guān)文章:
1. javascript - sublime快鍵鍵問(wèn)題2. javascript - immutable配合react提升性能?3. css - 寫(xiě)頁(yè)面遇到個(gè)布局問(wèn)題,求大佬們幫解答,在線等,急!~4. javascript - nodejs關(guān)于進(jìn)程間發(fā)送句柄的一點(diǎn)疑問(wèn)5. Apache 已經(jīng)把網(wǎng)站根目錄的改為allow from all了,但是服務(wù)器還是不能訪問(wèn)?6. 實(shí)現(xiàn)bing搜索工具urlAPI提交7. 配置Apache時(shí),添加對(duì)PHP的支持時(shí)語(yǔ)法錯(cuò)誤8. vue.js - Vue 如何像Angular.js watch 一樣監(jiān)聽(tīng)數(shù)據(jù)變化9. javascript - 移動(dòng)端上不能實(shí)現(xiàn)拖拽布局嗎?10. phpstudy8.1支持win11系統(tǒng)嗎?

網(wǎng)公網(wǎng)安備