如果我同时在mysql中查询多个分区,与在没有分区的情况下查询相同的数据相比,是否存在性能问题?

如果我同时在mysql中查询多个分区,与在没有分区的情况下查询相同的数据相比,是否存在性能问题?,mysql,partitioning,database-partitioning,Mysql,Partitioning,Database Partitioning,我有一个transactions表,其中它是由客户机ID进行分区的(目前将有4个客户机,所以有4个分区)。现在,如果我在(1,2)中查询客户机id,那么与在表上没有分区的情况下使用相同的查询相比,是否存在任何性能问题? 我听说,对于每个分区,mysql将维护单独的文件系统,所以在分区表中查询需要在内部打开多个文件,查询速度会减慢。这是否正确?按列表划分按范围按散列?其他的?这会有很大的不同 使用EXPLAIN PARTITIONS SELECT…查看它是否正在进行任何“修剪”。如果不是,则分区是

我有一个transactions表,其中它是由客户机ID进行分区的(目前将有4个客户机,所以有4个分区)。现在,如果我在(1,2)中查询客户机id,那么与在表上没有分区的情况下使用相同的查询相比,是否存在任何性能问题?
我听说,对于每个分区,mysql将维护单独的文件系统,所以在分区表中查询需要在内部打开多个文件,查询速度会减慢。这是否正确?

按列表划分<代码>按范围
<代码>按散列?其他的?这会有很大的不同

使用
EXPLAIN PARTITIONS SELECT…
查看它是否正在进行任何“修剪”。如果不是,则分区是该查询的性能阻力

一般来说,分区提供任何性能优势的情况很少。听起来您的案例不会从分区中受益。这样想吧。。。首先,它必须决定要查找哪个分区,然后它将深入索引以完成对行的定位。没有分区,第一步就可以避免,因此可能更快

如果您增长到数百个“客户机”,因此是“分区”,那么修剪是低效的,因为每个分区本质上都是一个“表”


请参阅,以获取我发现的仅有的4个分区用例的列表。

尝试一下,看看它的作用。请不要双重标记RDBMS。SQL Server和MySQL通常对同一个问题要求不同的答案。您是否同时询问MySQL和Microsoft SQL Server?我看到您在问题中特别提到MySQL,但也有一些问题sql server标记。我可以说sql server版本的查询不会影响性能,但性能可能与具有聚集索引的单个表相似。只有mysql而不是microsoft sql server