2013-03-06 113 views
1

ORACLE並行查詢是否有mysql的任何等同方法來運行相同ORACLE相當於在MySQL

ORACLE WAY

select /*+ FULL(emp) PARALLEL(emp, 35) */ 
     emp_name 
     from 
     emp; 

並行查詢在MySQL

/* + FULL(emp)PARALLEL(emp,35)*/

將被視爲評論

回答

0

有在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

+0

需要明確的是,這是使用bash來產生多個MySQL進程(注意mysql行末尾的&)。它可以工作,但是比Oracle解決方案在三個方面效率低下:(a)它使用完整的MySQL進程而不是線程(b)它在客戶端執行並行操作,所以更多的通信開銷和更少的優化機會(c)它往往需要進一步的工作,因爲你最終會得到一個結合了所有結果並且以任意順序的文件。 (不幸的是,當涉及到MySQL並行性時,解決方法不幸是必需的,但它並不是內置的。) – mahemoff 2018-02-18 09:29:54