MyISAM,可以說,已經出現了很長的時間,它有普遍的功能,受大多數網絡編程人員歡迎。
大型的網站,一般不會用MyISAM,他們會選擇更好的組合 -Cluster,這更適合大型網站的需要,或許他們自己設計數據庫程序。
而中型網站,很多數據庫已經有些勞累了,這是當然的,但他們的服務器就一台,NDB太幻想。
可以走這條路,MERGE。
MERGE,簡單說就是同樣的MyISAM表的組合。轉換到這種組合,可以把大表合理分成結構相同的小表,再加以配置組合。
首先,我們可能必須說這個問題,MERGE表更適合能自己調整程序的網站,在這種情況下,他可以實現更高的效率,例如將不會再改變的表「壓縮」,還可以把使合理的表查詢減負方案得到更明顯的效果,但...
鍵讀會更慢。當你讀一個鍵的時候,MERGE存儲引擎需要在所有底層表上發出一個讀以檢查哪一個接近匹配給定的鍵。
這是MySQL手冊中的一句話,的確,想一想,你實現對MRG的查詢時,他需要對每個表都發出一個查詢,在非const的查詢中,他會一個一個表查,在const查詢中,只有第一個表有數據才會達到最高效率(這個表可以當作是頻繁讀取的表)。
MERGE組合看起來很理想,但這裡最重要的一點,MRG的操作可能需要更多的考察,最重要的一點,運用這個表的程序,需要能由你改變,MRG意味著程序需要做一些修改,如果用成品程序,可能引起很多非常奇怪的問題。