2017-06-09 14 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使用案例的清单,我

相关问题