最近在面試幾個candidate,都說自己有MySQL tuning的經驗, 但進一步問下去,發現連MySQL怎麼用BTree放index,或者怎麼使用partition or sharding都不了解,所以打算來寫一系列的MySQL文章,這篇就先挑簡單的partition來寫。
1. What’s Partition and Why?
簡單說,Partition是將你的table,根據你的配置去divide成好幾個part;最重要的是,資料都是在同一個DB裡面,這對application來說,可以無感的使用它,卻又享有它的優點。
那麼為何要用partition呢?partition的優點在於:
Partition Pruning
:基於已經知道資料在哪個partition的條件下,讓你的SQL operation變快,這包含了select, insert, update ,delete
刪除資料
:當你的table很大時,刪除是非常耗時的一件工作,有了partition以後,你可以直接drop該partition,且時間上可以快上非常多。