文章詳情頁
MySQL 分表有什么壞處和改進意見?
瀏覽:198日期:2022-06-15 09:53:37
問題描述
如果一張表數據很大,將分表拆分數據,或者預估數據量很大,會預先生成很多分表,那么,日后要改字段,豈不是每張表都是執行同樣的 sql 改字段?
MySQL 還有分區的概念,就是解決一張表數據量過大的,為什么現實開發中還是普遍使用分表的方式?
問題解答
回答1:我認為不管是數據庫還是編程的各種模式,并不是說0耦合就是最好的。適當的冗余可以提高性能,和可讀、維護性。
回答2:個人愚見,分區是你指定規則進行分表,比較死板。分表可以在業務邏輯層上進行靈活的熱點數據分表。
回答3:一個表的容量還是有限的,數據越多插入性能就會受影響,每次插入都要去尋找對應分區,還有索引,都會大大降低插入速度。
至于分表的壞處,當然就是你說的如果需要修改字段,那就要每張表都去執行,但這種可能性小,況且之前的數據都已成為歷史數據了,而如果你把數據都放一張表里,改表結構不就把表鎖住了?從這個方面來看,分表還可以做到讀寫分離。另一個壞處就是查詢需要union分表,需要用while去拼接sql,這是有點繁瑣的,恰恰分區不用拼接。。。
因此實際中,分表和分區常常是結合的,各自互補。
相關文章:
1. html5和Flash對抗是什么情況?2. html5 - datatables 加載不出來數據。3. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????4. docker 17.03 怎么配置 registry mirror ?5. node.js - mongodb查找子對象的名稱為某個值的對象的方法6. 運行python程序時出現“應用程序發生異?!钡膬却驽e誤?7. 測試自動化html元素選擇器元素ID或DataAttribute [關閉]8. javascript - QQ第三方登錄的問題9. javascript - 在 model里定義的 引用表模型時,model為undefined。10. spring-mvc - spring-session-redis HttpSessionListener失效
排行榜

網公網安備