mysql 数据结构设计_MYSQL 设计数据结构需注意问题
在設計數據結構時需要注意:
1、永遠為表設定一個自增主鍵ID,并盡可能的利用此ID進行構造
(在配置表中)盡可能的用上unsigned,并盡可能的小。能用tinyint(1字節)、smallint(2字節)、mediumint(3字節),就不用int(4)字節
2、盡可能的使用ENUM,比如性別,屬相等,因ENUM是保存為tinyint
3、盡可能的使用not null,除非業務需要使用null
4、把IP地址存為int unsigned ,使用 inet_aton() ?和 ?inet_ntoa() 來進行轉換
5、盡量使用短的字符類型
6、盡量使用固長的字符類型,當表中所有的字段都是固定長度,DB 會認為表是static類型,如果有固定長度和非固定長度的字段盡量采用垂直分割,將表分割。
靜態類型的表有以下特點:
a、非常快,由于是固定長度,DB很容易計算出下行的偏移量,所以讀取速度會很快,如果不是固定長度,要找到下行數據必須找到主鍵(這也是主鍵使用自增ID的重要的原因)
b、容易緩存
c、崩潰后容易重建,因為行是在固定位置
d、比變長需要更多的磁盤空間
e、一般不用優化,除非刪除了大量數據,采用optimize table 進行優化
7、垂直分割是把1張表的信息分割成幾張表,應注意以下幾點
a、盡量把固長和非固定長度的字段分離
b、經常使用和非經常使用的字段分離
c、頻繁更新和更新不頻繁的字段分離(比如登錄時間等),因為表的更新會釋放掉表的緩存,如果更新頻繁,基本上就用不上緩存。
d、拆分出去的字段,不能經常做join操作,否則性能比不拆分還要下降的多。
9、水平分割
a、設計時備份表和業務表進行分庫。這樣在做數據庫遷移、備份、恢復時往往會有比較好的效果
b、數據量很大的時候,可以將一張表的數據分發到小表中去,以提高插入,查詢的效率(比如原始數據的匯集)
8、選擇正確的存儲引擎
a、MYISAM 適合用在業務量小,更新操作不頻繁且不需要事務的應用
b、INNODB 使用在更新操作頻繁,需要事務的應用
收藏邀請
總結
以上是生活随笔為你收集整理的mysql 数据结构设计_MYSQL 设计数据结构需注意问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pdo mysql like_PHP P
- 下一篇: Delphi TRect函数例子