2012-12-27 62 views
2

我已經實現了一個基準測試10個不同表上的讀寫操作的持久性。MySQL分區:性能增加對於多個分區表。爲什麼?

我有10個Java線程,每個僅在其表進行查詢:

線程上表1 1名執行操作, 線程2個上表2執行操作,

我已經司儀運行那些線程的性能並行地執行對非分區表[1-10]的多次讀取,同時將每個TableX劃分爲9個相等的分區(每個表示一週的測量,總共9周的數據)。

我收到有趣的和不可解釋的結果:

單一操作的單個線程的性能是一個非分區表高2倍,而所有操作的所有線程的總時間爲5倍分區表更快。

我檢查了日誌,發現分區表使更多的操作並行,儘管單個操作更長,但不同線程的多個操作是並行的,因此完成速度更快。

我不明白爲什麼會發生這種情況,因爲每個線程只在自己的表上執行操作?

我對所有的表和分區只使用MyISAM引擎。

回答