一、說明
假期有時間可以多去看看一些表的設計,發現了不少問題,老系統上過百的字段,裏面含有大量的mediumtext,不到500萬的數據量,開發規範中有要求表設計不要超過500萬數據量。查看了表佔用的磁盤空間120G,毫無疑問是大表,當初設計的時候就沒有考慮過設計。一句話上線能用就行,管他呢。
二、MySQL規範
1、單表不要超過500萬條記錄,同時評估單表所佔用磁盤空間不要超過50G,否則考慮優化、分表等。
2、禁用text字段類型,如果必須的用,也需要單獨設計表。
三、禁用text字段類型原因
1、性能很差,排序等操作時,就不能使用內存臨時表,必須使用磁盤臨時表進行。
2、TEXT或BLOB類型只能使用前綴索引,MySQL對索引字段長度是有限制的。
四、解決辦法
定好規範,嚴格執行(執行很難),一兩個DBA面對幾十上百的業務系統,幾萬個表,上百萬的字段通過每一個表和字段人工審覈是不可能完成的,最終還是要靠智能化的審覈系統!