

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

# Amazon Aurora MySQL 概觀
<a name="Aurora.AuroraMySQL.Overview"></a>

下列各節提供 Amazon Aurora MySQL 的概觀。

**Topics**
+ [Amazon Aurora MySQL 效能增強功能](#Aurora.AuroraMySQL.Performance)
+ [Amazon Aurora MySQL 和空間資料](#Aurora.AuroraMySQL.Spatial)
+ [Aurora MySQL 第 3 版與 MySQL 8.0 相容](AuroraMySQL.MySQL80.md)
+ [Aurora MySQL 第 2 版與 MySQL 5.7 相容](AuroraMySQL.CompareMySQL57.md)

## Amazon Aurora MySQL 效能增強功能
<a name="Aurora.AuroraMySQL.Performance"></a>

Amazon Aurora 包括效能增強功能以支援高階商用資料庫多樣化的需求。

### 快速插入
<a name="Aurora.AuroraMySQL.Performance.FastInsert"></a>

快速插入可加速依主要索引鍵排序的平行插入，並專門套用至 `LOAD DATA` 和 `INSERT INTO ... SELECT ...` 陳述式。在執行陳述式時，快速插入會快取索引周遊中游標的位置。這可避免不必要地重新周遊索引。

快速插入功能僅適用於 Aurora MySQL 3.03.2 版和更新版本中的一般 InnoDB 資料表。此最佳化不適用於 InnoDB 暫存資料表。它在所有 2.11 和 2.12 版本的 Aurora MySQL 第 2 版中已停用。快速插入最佳化只有在停用自適應雜湊索引最佳化時才有效。

您可以監控下列指標，以判斷資料庫叢集的快速插入效果：
+ `aurora_fast_insert_cache_hits`：成功擷取並驗證快取游標時會遞增的計數器。
+ `aurora_fast_insert_cache_misses`：快取游標不再有效，且 Aurora 執行正常索引周遊時會遞增的計數器。

您可以使用下列命令，擷取快速插入指標的目前值：

```
mysql> show global status like 'Aurora_fast_insert%';
```

您將會得到類似下列的輸出：

```
+---------------------------------+-----------+
| Variable_name                   | Value     |
+---------------------------------+-----------+
| Aurora_fast_insert_cache_hits   | 3598300   |
| Aurora_fast_insert_cache_misses | 436401336 |
+---------------------------------+-----------+
```

## Amazon Aurora MySQL 和空間資料
<a name="Aurora.AuroraMySQL.Spatial"></a>

下列清單彙總主要 Aurora MySQL 空間特性，以及說明它們如何對應至 MySQL 中的空間特性。
+ Aurora MySQL 第 2 版支援與 MySQL 5.7 相同的空間資料類型和空間關聯式函式。如需這些資料類型和函式的詳細資訊，請參閱 MySQL 5.7 文件中的[空間資料類型](https://dev.mysql.com/doc/refman/5.7/en/spatial-types.html)和[空間關聯式函式](https://dev.mysql.com/doc/refman/5.7/en/spatial-relation-functions-object-shapes.html)。
+ Aurora MySQL 第 3 版支援與 MySQL 8.0 相同的空間資料類型和空間關聯式函式。如需這些資料類型和函式的詳細資訊，請參閱 MySQL 8.0 文件中的[空間資料類型](https://dev.mysql.com/doc/refman/8.0/en/spatial-types.html)和[空間關聯式函式](https://dev.mysql.com/doc/refman/8.0/en/spatial-relation-functions-object-shapes.html)。
+ Aurora MySQL 支援 InnoDB 資料表上的空間檢索。空間檢索可改善大型資料集上對空間資料進行查詢的查詢效能。在 MySQL 中，InnoDB 資料表的空間檢索可用於 MySQL 5.7 和 8.0。

  Aurora MySQL 會使用來自 MySQL 的不同空間檢索策略，以便可以高效能進行空間查詢。Aurora 空間索引實作會在 B 樹狀結構上使用空間填滿曲線，其目的旨在為空間範圍掃描提供比 R 樹狀結構更高的效能。
**注意**  
在 Aurora MySQL 中，資料表上的交易若有空間索引定義在具有空間參考識別符 (SRID) 的資料欄上，則無法插入至另一個交易為了更新而選取的區域。

支援下列資料定義語言 (DDL) 陳述式，可在使用空間資料類型的資料欄上建立索引。

### CREATE TABLE
<a name="Aurora.AuroraMySQL.Spatial.create_table"></a>

您可以在 `SPATIAL INDEX` 陳述式中使用 `CREATE TABLE` 關鍵字，將空間索引新增至新的資料表。以下是範例。

```
CREATE TABLE test (shape POLYGON NOT NULL, SPATIAL INDEX(shape));
```

### ALTER TABLE
<a name="Aurora.AuroraMySQL.Spatial.alter_table"></a>

您可以在 `SPATIAL INDEX` 陳述式中使用 `ALTER TABLE` 關鍵字，將空間索引新增至現有資料表中的資料欄。以下是範例。

```
ALTER TABLE test ADD SPATIAL INDEX(shape);
```

### CREATE INDEX
<a name="Aurora.AuroraMySQL.Spatial.create_index"></a>

您可以在 `SPATIAL` 陳述式中使用 `CREATE INDEX` 關鍵字，將空間索引新增至現有資料表中的資料欄。以下是範例。

```
CREATE SPATIAL INDEX shape_index ON test (shape);
```