2017-06-09 43 views
0

我有交易表,其中它由客戶id分區(目前將有4個客戶,所以4個分區)。現在,如果我在(1,2)中查詢客戶端ID,與在表上使用相同的查詢分區相比,是否存在任何性能問題? 我聽說每個分區的mysql都會維護單獨的文件系統,因此在分區表中查詢需要在內部打開多個文件,查詢速度會變慢。它是否正確?是否有任何性能問題,如果我在一次查詢MySQL多個分區一次比較查詢相同的數據沒有分區?

+0

試一下,看看它在做什麼 – dbajtr

+0

請不要雙重標記RDBMS SQL Server和MySQL通常需要不同的答案來解決同一個問題 –

+1

您是否在問MySQL和Microsoft SQL Server?我看到你在你的問題中專門調用了MySQL,但也有一個sql-server標籤。我可以說沒有性能影響SQL Server版本的que但是性能可能與具有聚集索引的單個表類似。 –

回答

0

PARTITION BY LISTBY RANGEBY HASH?其他?它可以產生很大的不同。

使用EXPLAIN PARTITIONS SELECT ...來查看它是否正在進行任何「修剪」。如果不是,則分區是該查詢的性能拖動。

通常,分區提供任何性能優勢的情況很少。這聽起來像你的情況不會從分區中受益。想想這樣...首先,它必須決定要查看哪個分區,然後它將挖掘索引來完成對行的定位。在沒有分區的情況下,可以避免第一步,因此可能會更快地加速

如果增長到數百名「客戶」,因此的「分區,然後修剪是低效的,因爲每個分區本質上是一個‘表’。

http://mysql.rjweb.org/doc.php/partitionmaint爲的只有4使用案例的清單,我

相關問題