

# 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 版本 8.4 与 MySQL 8.4 兼容](AuroraMySQL.MySQL84.md)
+ [Aurora MySQL 版本 3 与 MySQL 8.0 兼容](AuroraMySQL.MySQL80.md)
+ [与 MySQL 5.7 兼容的 Aurora MySQL 版本 2](AuroraMySQL.CompareMySQL57.md)

## Amazon Aurora MySQL 性能增强
<a name="Aurora.AuroraMySQL.Performance"></a>

Amazon Aurora 包括用于支持高端商用数据库的不同需求的性能增强。

## 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 版本 8.4 与 MySQL 8.4 支持相同的空间数据类型和空间关系函数。有关这些数据类型和函数的更多信息，请参阅 MySQL 8.4 文档中的[空间数据类型](https://dev.mysql.com/doc/refman/8.4/en/spatial-types.html)和[空间关系函数](https://dev.mysql.com/doc/refman/8.4/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);
```