특정 세션에서만 Aurora Parallel Query 활성화
v2.09.0보다 크면parametergroup의
aurora_parallel_query
와 aurora_disable_hash_join
를 기본값으로 설정한 후 시스템 변수를 다음과 같이 설정할 수 있습니다.set session aurora_parallel_query='on'
set session optimizer_switch='hash_join=on'
EXPLAIN의 Extra에Using parallel query (...)
가 있다면parallelquery가 작용합니다.※ Parallel query를 유효화할 뿐이라면 optimizer switch 설정이 필요하지 않습니다.보도의 아래의 예에서 이것을 볼 수 있다.하지만 문서 다음과 같이 설정하는 게 좋을 것 같아요.또
aurora_disable_hash_join=on
라도optimizer switchhash_join=on
에서 하면hashjoin이 유효해지는 것 같다.병렬 조회는 대량의 자원 유형의 조회를 사용하는데 그 장점은 산열 조합을 최적화하는 데 있다.따라서 병렬 검색을 사용하는 그룹에서 산열 조합을 사용하면 유용합니다.
mysql> select aurora_version();
+------------------+
| aurora_version() |
+------------------+
| 2.09.1 |
+------------------+
1 row in set (0.00 sec)
mysql> select @@aurora_parallel_query;
+-------------------------+
| @@aurora_parallel_query |
+-------------------------+
| 0 |
+-------------------------+
1 row in set (0.00 sec)
mysql> select @@aurora_disable_hash_join;
+----------------------------+
| @@aurora_disable_hash_join |
+----------------------------+
| 1 |
+----------------------------+
1 row in set (0.00 sec)
mysql> select @@optimizer_switch\G
*************************** 1. row ***************************
@@optimizer_switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,duplicateweedout=on,subquery_materialization_cost_based=on,use_index_extensions=on,condition_fanout_filter=on,derived_merge=on,hash_join=off,hash_join_cost_based=on
1 row in set (0.00 sec)
mysql> explain select count(*) from t where a = 5 and id > 5000000000\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t
partitions: NULL
type: range
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: NULL
rows: 5879332
filtered: 10.00
Extra: Using where
1 row in set, 1 warning (0.00 sec)
mysql> set session aurora_parallel_query='on';
Query OK, 0 rows affected (0.00 sec)
mysql> select @@aurora_parallel_query;
+-------------------------+
| @@aurora_parallel_query |
+-------------------------+
| 1 |
+-------------------------+
1 row in set (0.00 sec)
mysql> explain select count(*) from t where a = 5 and id > 5000000000\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t
partitions: NULL
type: ALL
possible_keys: PRIMARY
key: NULL
key_len: NULL
ref: NULL
rows: 405074076
filtered: 0.15
Extra: Using where; Using parallel query (2 columns, 2 filters, 0 exprs; 0 extra)
1 row in set, 1 warning (0.00 sec)
Reference
이 문제에 관하여(특정 세션에서만 Aurora Parallel Query 활성화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/nayutayanagisaw/articles/895f107735502a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)