MySQL字段設計規範避免使用TEXT/BLOB數據類型(坑)

一、說明
假期有時間可以多去看看一些表的設計,發現了不少問題,老系統上過百的字段,裏面含有大量的mediumtext,不到500萬的數據量,開發規範中有要求表設計不要超過500萬數據量。查看了表佔用的磁盤空間120G,毫無疑問是大表,當初設計的時候就沒有考慮過設計。一句話上線能用就行,管他呢。

二、MySQL規範
1、單表不要超過500萬條記錄,同時評估單表所佔用磁盤空間不要超過50G,否則考慮優化、分表等。
2、禁用text字段類型,如果必須的用,也需要單獨設計表。

三、禁用text字段類型原因
1、性能很差,排序等操作時,就不能使用內存臨時表,必須使用磁盤臨時表進行。
2、TEXT或BLOB類型只能使用前綴索引,MySQL對索引字段長度是有限制的。

四、解決辦法
定好規範,嚴格執行(執行很難),一兩個DBA面對幾十上百的業務系統,幾萬個表,上百萬的字段通過每一個表和字段人工審覈是不可能完成的,最終還是要靠智能化的審覈系統!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章