

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Aurora MySQL 中開啟和關閉平行查詢。
<a name="aurora-mysql-parallel-query-enabling"></a>

開啟平行查詢時，Aurora MySQL 會判定是否要在執行時針對每個查詢使用它。在聯結、聯集、子查詢等等的情況下，Aurora MySQL 會判定是否要在執行時針對每個查詢區塊使用平行查詢。如需詳細資訊，請參閱 [確認哪些陳述式使用平行查詢](aurora-mysql-parallel-query-verifying.md) 和 [Aurora MySQL 中平行查詢的 SQL 建構](aurora-mysql-parallel-query-sql.md)。

您可以使用 **aurora\_parallel\_query** 選項，同時在資料庫執行個體的全域和工作階段層級動態開啟和關閉平行查詢。您可以變更資料庫叢集群組中的 `aurora_parallel_query` 設定，依預設開啟或關閉平行查詢。

```
mysql> select @@aurora_parallel_query;
+------------------------+
| @@aurora_parallel_query|
+------------------------+
|                      1 |
+------------------------+
```

 若要在工作階段層級切換 `aurora_parallel_query` 參數，請使用標準方法來變更用戶端組態設定。例如，您可以透過 `mysql` 命令列或 JDBC 或 ODBC 應用程式中執行此操作。例如，標準 MySQL 用戶端上的命令為 `set session aurora_parallel_query = {'ON'/'OFF'}`。您也可以將工作階段層級參數新增至 JDBC 組態，或在您的應用程式碼內新增此參數，來動態開啟或關閉平行查詢。

 您可以針對特定資料庫執行個體或整個叢集，永久變更 `aurora_parallel_query` 參數的設定。如果您在資料庫參數群組中指定參數值，則該值僅適用於叢集中特定資料庫執行個體。如果您在資料庫叢集參數群組中指定參數值，則叢集中所有資料庫執行個體都會繼承相同的設定。若要在叢集層級切換 `aurora_parallel_query` 參數，請使用適合使用參數群組的技術，如[Amazon Aurora 的參數群組](USER_WorkingWithParamGroups.md)中所述。請遵循下列步驟：

1.  建立自訂叢集參數群組 (建議使用) 或自訂資料庫參數群組。

1.  在這個參數群組中，將 `parallel_query` 更新為您想要的值。

1.  視您建立的是資料庫叢集參數群組或資料庫參數群組而定，將參數群組附加到 Aurora 叢集或您計劃使用平行查詢功能的特定資料庫執行個體。
**提示**  
由於 `aurora_parallel_query` 是動態參數，因此您毋需在變更此設定後重新啟動叢集。但是，在切換選項之前使用平行查詢的所有連線皆將繼續執行此作業，直至連線關閉或執行個體重新啟動為止。

 您可以使用 [ModifyDBClusterParameterGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html) 或 [ModifyDBParameterGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBParameterGroup.html) API 操作或 AWS 管理主控台修改平行查詢參數。

您可以為平行查詢叢集開啟雜湊聯結、使用 Amazon RDS 主控台或 開啟和關閉平行查詢 AWS CLI，以及覆寫平行查詢最佳化工具。

**Contents**
+ [開啟平行查詢叢集的雜湊聯結](#aurora-mysql-parallel-query-enabling-hash-join)
+ [使用主控台開啟和關閉平行查詢](#aurora-mysql-parallel-query-enabling-console)
+ [使用 CLI 開啟和關閉平行查詢](#aurora-mysql-parallel-query-enabling-cli)
+ [覆寫平行查詢最佳化工具](#aurora-mysql-parallel-query-enabling.aurora_pq_force)

## 開啟平行查詢叢集的雜湊聯結
<a name="aurora-mysql-parallel-query-enabling-hash-join"></a>

受益於雜湊聯結最佳化的資源密集型查詢，通常使用平行查詢。因此，確保您計劃使用平行查詢的叢集開啟雜湊聯結能提供幫助。如需如何有效使用雜湊聯結的相關資訊，請參閱[使用雜湊聯結，將大型 Aurora MySQL 聯結查詢最佳化](AuroraMySQL.BestPractices.Performance.md#Aurora.BestPractices.HashJoin)。

## 使用主控台開啟和關閉平行查詢
<a name="aurora-mysql-parallel-query-enabling-console"></a>

 您可以在資料庫執行個體層級使用參數群組，來開啟或關閉平行查詢。

**使用 開啟或關閉資料庫叢集的平行查詢 AWS 管理主控台**

1.  建立自訂參數群組，如[Amazon Aurora 的參數群組](USER_WorkingWithParamGroups.md)中所述。

1. 將 **aurora\_parallel\_query** 更新為 **1** (開啟) 或 **0** (關閉)。對於可以使用平行查詢功能的叢集，依預設會關閉 **aurora\_parallel\_query**。

1.  如果您使用自訂叢集參數群組，請將它附加到您計劃使用平行查詢功能的 Aurora 資料庫叢集。如果您使用自訂資料庫參數群組，請將其連線到叢集中的一或多個資料庫執行個體。建議您使用叢集參數群組。這樣做可確保叢集中的所有資料庫執行個體都具有相同的平行查詢設定，以及相關聯的功能 (例如雜湊聯結)。

## 使用 CLI 開啟和關閉平行查詢
<a name="aurora-mysql-parallel-query-enabling-cli"></a>

 您可以使用 `modify-db-cluster-parameter-group` 或 `modify-db-parameter-group` 命令，來修改平行查詢參數。根據您是透過資料庫叢集參數群組或資料庫參數群組指定 `aurora_parallel_query` 的值，選擇適當的命令。

**使用 CLI 開啟或關閉資料庫叢集的平行查詢**
+  使用 `modify-db-cluster-parameter-group` 命令，來修改平行查詢參數。使用如下命令。替代您自己的自訂參數群組的適當名稱。將 `ON` 選項的 `OFF` 部分替代為 `ParameterValue` 或 `--parameters`。

  ```
  $ aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name {{cluster_param_group_name}} \
    --parameters ParameterName=aurora_parallel_query,ParameterValue=ON,ApplyMethod=pending-reboot
  {
      "DBClusterParameterGroupName": "{{cluster_param_group_name}}"
  }
  
  aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name {{cluster_param_group_name}} \
    --parameters ParameterName=aurora_pq,ParameterValue=ON,ApplyMethod=pending-reboot
  ```

 您也可以在工作階段層級，例如透過 `mysql` 命令列或在 JDBC 或 ODBC 應用程式內開啟或關閉平行查詢。若要這樣做，請使用標準方法來變更用戶端組態設定。例如，對於 Aurora MySQL 標準 MySQL 用戶端上的命令為 `set session aurora_parallel_query = {'ON'/'OFF'}`。

 您也可以將工作階段層級參數新增至 JDBC 組態，或在您的應用程式碼內新增此參數，來動態開啟或關閉平行查詢。

## 覆寫平行查詢最佳化工具
<a name="aurora-mysql-parallel-query-enabling.aurora_pq_force"></a>

您可以使用 `aurora_pq_force` 工作階段變數來覆寫平行查詢最佳化工具，並針對每個查詢要求平行查詢。我們建議您僅針對測試目的這樣做。下列範例顯示如何在工作階段中使用 `aurora_pq_force`。

```
set SESSION aurora_parallel_query = ON;
set SESSION aurora_pq_force = ON;
```

若要關閉覆寫，請執行下列命令：

```
set SESSION aurora_pq_force = OFF;
```