Mysql數據庫優化系列(四)------表的優化與列類型選擇

表的優化:

1: 定長與變長分離

如 id int, 4個字節, char(4) 4個字符長度,也是定長, time 

即每一單元值佔的字節是固定的.

核心且常用字段,宜建成定長,放在一張表.

 

varchar, text,blob,這種變長字段,適合單放一張表用主鍵與核心表關聯起來.

 

2:常用字段和不常用字段要分離.

需要結合網站具體的業務來分析,分析字段的查詢場景,查詢頻度低的字段,單拆出來.

 

3:合理添加冗餘字段.

看如下BBS的效果

每個版塊裏,N條帖子在首頁,顯示了版塊信息,和版塊下的帖子數.

這是如何做的?

boardid

boardname

postnum

8

開班信息

2

9

每日視頻及代碼

1

 

postid

boardid

title

123

8

論壇開張了

129

8

灌水

133

9

來一帖

 

如果board表只有前2,則需要取出版塊後,

再查post,select count(*) from post group by board_id,得出每個版塊下的帖子數.

 

如果有postnum字段,每發一個帖子時,postnum字段+1; 

再查詢版塊下的帖子數時只需要1條語句直接查boardid

select boradid, boardname,postnum from board;

 

典型的”空間換時間”



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