【问题标题】:Equivalent of oracle's Parallel option in MysqlMysql中oracle的Parallel选项等价
【发布时间】:2013-09-23 01:04:01
【问题描述】:

在 oracle 中,我们可以创建一个表并插入数据并使用并行选项选择它。

mysql 中有没有类似的选项。我正在从 oracle 迁移到 mysql,我的系统有更多的选择和更少的数据更改,所以任何并行选择的选项都是我想要的。

例如:假设我的表有 100 万行,如果我使用 parallel(5) 选项,那么五个线程正在运行相同的查询,并且每个线程获取大约 200K,最终结果是我在 1/5 中获得 100 万条记录平时的时间。

【问题讨论】:

    标签: mysql sql database-migration


    【解决方案1】:

    MySQL 中的查询始终并行运行。但是,如果您想通过程序同时运行不同的查询,则需要通过您的程序可以异步访问的工作程序打开不同的连接。

    您还可以通过创建事件或使用延迟插入来运行任务,但我认为这在这里不太适用。需要考虑的其他事项:

    一般来说,个别查询之间有些操作是有保护的 会话(称为事务)。这些由 InnoDB 支持 后端,但不是 MyISAM 表(但它支持一个名为 原子操作)。有不同的隔离级别 其中操作是相互保护的(因此如何 一个并行事务中的操作会影响另一个)以及它们的 性能影响。 - Holger Just

    他还提到了 MySQL 事务页面,该页面简要介绍了 MySQL 可用的不同引擎类型(MyISAM 更快,但不那么可靠): MySQL Transcations

    【讨论】:

    【解决方案2】:

    简而言之,答案是否定的。

    MySQL 服务器旨在并行执行并发用户会话,而不是在多个部分中并行执行一个给定的用户会话。

    这是个人意见,但我不想预先应用优化,对 RDBMS 的工作方式做出假设。最好先测量查询,看看响应时间是否是一个真正的问题,然后才研究可能的优化。

    “过早的优化是万恶之源。” (唐纳德·克努斯)

    【讨论】:

      猜你喜欢
      • 2011-02-13
      • 2010-12-06
      • 2010-11-10
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 2021-03-27
      • 2012-10-03
      相关资源
      最近更新 更多