天天看點

MySql 學習筆記四:表的拆分

一、水準劃分

如果一個表的記錄數太多了,比如上千萬條,而且需要經常檢索,那麼我們就有必要化整為零了。如果我拆成100個表,那麼每個表隻有10萬條記錄。當然這 需要資料在邏輯上可以劃分。一個好的劃分依據,有利于程式的簡單實作,也可以充分利用水準分表的優勢。比如系統界面上隻提供按月查詢的功能,那麼把表按月 拆分成12個,每個查詢隻查詢一個表就夠了。如果非要按照地域來分,即使把表拆的再小,查詢還是要聯合所有表來查,還不如不拆了。是以一個好的拆分依據是:最重要的。(UNION )

将某個通路極其頻繁的表再按照某個字段的某種規則來分散到多個表之中,每個表中包含一部分資料。

二、垂直劃分

有些表記錄數并不多,可能也就2、3萬條,但是字段卻很長,表占用空間很大,檢索表時需要執行大量I/O,嚴重降低了性能。這個時候需要把大的字段拆分到另一個表,并且該表與原表是一對一的關系。 (JOIN)

繼續閱讀