MYSQL 設計資料結構注意事項

2021-06-19 03:39:45 字數 1051 閱讀 3490

在設計資料結構時需要注意:

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 使用在更新操作頻繁,需要事務的應用

資料結構 結構體的注意事項

方式一 typedef struct lnode lnode,linklist 方式二 struct lnode typedef struct lnode lnode typedef struct lnode linklist 指向struck lnode的指標 等價寫法 lnode l linkl...

mysql表設計注意事項

1 主鍵,最好使用業務主鍵,採用時間 伺服器編號 序號,進行生成,如果沒有特殊要求,直接使用資料庫自增序列值即可。主要是達到查詢效率快,不用走二級索引 2 對於業務資料,如果需要對多個字段建立索引,且這幾個字段查詢的時候都是一起作為條件的,可以設計為聯合索引。建索引的時候,將篩選力度大的屬性放前面,...

PCB設計注意事項

在進行設計之前要將各種約束規則設定好。1 線和孔的間距要大一點。2 小訊號部分,注意保護。小訊號指的是小電流訊號 保護,通常是進行包地。晶振電路也屬於小訊號電路。晶振要緊靠晶元引腳放置,距離太遠容易出現干擾。對於四個引腳的電容,不要從中間穿插走線。避免短路。3電容的擺放應該起到應有的作用。例如,通訊...