ORACLE並行查詢是否有mysql的任何等同方法來運行相同ORACLE相當於在MySQL
ORACLE WAY
select /*+ FULL(emp) PARALLEL(emp, 35) */
emp_name
from
emp;
並行查詢在MySQL
/* + FULL(emp)PARALLEL(emp,35)*/
將被視爲評論
ORACLE並行查詢是否有mysql的任何等同方法來運行相同ORACLE相當於在MySQL
ORACLE WAY
select /*+ FULL(emp) PARALLEL(emp, 35) */
emp_name
from
emp;
並行查詢在MySQL
/* + FULL(emp)PARALLEL(emp,35)*/
將被視爲評論
MySQL不是Oracle(儘管屬於Oracle)。它does not support parallel queries。
但是,您可以使用shard-query這是支持它們的第三方數據庫引擎。查看來自Percona的Justin Swanhart的this blog post瞭解更多信息。
有在MySQL支持開箱即沒有PARALLEL
關鍵字,但你可以以類似的方式實現它:
#!/bin/bash
date
for y in {1988..2013}
do
sql="select yeard, count(*) from ontime where yeard=$y"
mysql -vvv ontime -e "$sql" &>par_sql1/$y.log &
done
wait
date
看文章:Increasing slow query performance with the parallel query execution
需要明確的是,這是使用bash來產生多個MySQL進程(注意mysql行末尾的&)。它可以工作,但是比Oracle解決方案在三個方面效率低下:(a)它使用完整的MySQL進程而不是線程(b)它在客戶端執行並行操作,所以更多的通信開銷和更少的優化機會(c)它往往需要進一步的工作,因爲你最終會得到一個結合了所有結果並且以任意順序的文件。 (不幸的是,當涉及到MySQL並行性時,解決方法不幸是必需的,但它並不是內置的。) – mahemoff 2018-02-18 09:29:54