在oracle中,我们可以创建一个表并插入数据并使用parallel选项进行选择。
mysql中是否有类似的选项。我正在从oracle迁移到mysql,我的系统有更多的选择和更少的数据更改,因此任何选择并行选择都是我想要的。
例如:让我们考虑我的表有100万行,如果我使用parallel(5)选项,那么五个线程运行相同的查询限制并且每个获取大约200K,最终结果我在1/5获得100万条记录通常的时间。
答案 0 :(得分:5)
简而言之,答案是否定的。
MySQL服务器旨在并行执行并发用户会话,但不能并行执行多个部分的给定用户会话。
这是个人观点,但我不想提前应用优化,对RDBMS的工作方式做出假设。最好先测量查询,看看响应时间是否真正关注,然后才调查可能的优化。
“过早优化是所有邪恶的根源。” (唐纳德克努特)
答案 1 :(得分:2)
MySQL中的查询始终并行运行。但是,如果要通过程序同时运行不同的查询,则需要通过程序具有异步访问权限的工作人员打开不同的连接。
您也可以通过创建事件或使用延迟插入来运行任务,但我认为这并不适用于此。还有其他需要考虑的事情:
通常,某些操作在个别查询之间受到保护 会话(称为交易)。这些都是InnoDB支持的 后端,但不是MyISAM表(但它支持一个名为的概念 原子操作)。存在各种不同的隔离级别 在哪些操作中彼此保护(以及如何操作) 一个并行事务中的操作影响另一个并且在它们中 绩效影响。 - Holger Just
他还提到了MySQL转换页面,它简单地介绍了MySQL可用的不同引擎类型(MyISAM更快,但不那么可靠): MySQL Transcations