如果一张表数据很大,将分表拆分数据,或者预估数据量很大,会预先生成很多分表,那么,日后要改字段,岂不是每张表都是执行同样的 sql 改字段?
MySQL 还有分区的概念,就是解决一张表数据量过大的,为什么现实开发中还是普遍使用分表的方式?
黄舟2017-04-17 16:28:13
一個表格的容量還是有限的,資料越多插入效能就會受影響,每次插入都要去尋找對應分區,還有索引,都會大大降低插入速度。
至於分錶的壞處,當然就是你說的如果需要修改字段,那就要每張表都去執行,但這種可能性小,況且之前的數據都已成為歷史數據了,而如果你把資料都放一張表裡,改錶結構不就把錶鎖住了?從這個方面來看,分錶還可以做到讀寫分離。另一個壞處就是查詢需要union分錶,需要用while去拼接sql,這是有點繁瑣的,恰恰分區不用拼接。 。 。
因此實際中,分錶和分區常常是結合的,各自互補。