mysql - native MySQL 分区和基于后端的分区之间的性能差异?

标签 mysql database performance scalability

假设我有两种情况,具有相同的数据量,例如一张包含 500 行的表。 首先,我使用一个查询来查询分区的 MySQL 表,然后将其余逻辑交给 MySQL 引擎来获取结果。

在第二种情况下,我创建 5 个表,最多 100 行。 然后,我以编程方式遍历这些表,直到找到记录,如下所示(伪代码):

fetchedData = query table1
if fetchedData == null 
  fetchedData = query table2
    if fetchedData == null
            ...
      fetchedData = query table5

我看到的主要缺点是我可能会查询数据库 5 次而不是 1 次,具体取决于记录存储在哪个表中。但由于查询更小、更有针对性,它们应该给我更快的响应时间。或者我应该把它留给 MySQL 分区?让我们忽略第二种情况的可维护性。

最佳答案

都不是。

500 行是微不足道的。即使 MySQL 可以并行处理事情,也无济于事。

使用合适的索引——通常会有很大帮助。

您的特定伪代码并不比使用末尾带有 LIMIT 1 的 MySQL 查询更好,以便在扫描所有内容之前停止查询。因此,我再说一遍“这两种分区都没有帮助”。

关于mysql - native MySQL 分区和基于后端的分区之间的性能差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39866088/

相关文章:

mysql - 如何从单列创建两列输出

mysql - MySQL 是否按照写入的顺序执行查询?

mysql - 如何使用 REPLACE() 替换 mysql SELECT 查询中 1 列中的多个值?

mysql - 具有可变条件的 SQL

mysql - 动态添加mysql表列

performance - Apache Storm : Relation between Executors , 执行延迟和进程延迟?

c++ - Box2D 中大型静态边缘地形的性能问题

php - 无法禁用 ONLY_FULL_GROUP_BY

Mysql存储过程太慢

c# - 调整阵列性能?