# 第 20 章 使用 MySQL 作为文档存储

**目录**

[20.1 MySQL 文档存储的接口](document-store-interfaces.html)
[20.2 文档存储概念](document-store-concepts.html)
[20.3 JavaScript 快速入门指南：用于文档存储的 MySQL Shell](mysql-shell-tutorial-javascript.html)
[20.3.1 MySQL 外壳](mysql-shell-tutorial-javascript-shell.html)
[20.3.2 下载和导入世界\_x 数据库](mysql-shell-tutorial-javascript-download.html)
[20.3.3 文档和集合](mysql-shell-tutorial-javascript-documents-collections.html)
[20.3.4 关系表](mysql-shell-tutorial-javascript-relational-tables.html)
[20.3.5 表格中的文档](mysql-shell-tutorial-javascript-documents-in-tables.html)
[20.4 Python 快速入门指南：用于文档存储的 MySQL Shell](mysql-shell-tutorial-python.html)
[20.4.1 MySQL 外壳](mysql-shell-tutorial-python-shell.html)
[20.4.2 下载和导入世界\_x 数据库](mysql-shell-tutorial-python-download.html)
[20.4.3 文档和集合](mysql-shell-tutorial-python-documents-collections.html)
[20.4.4 关系表](mysql-shell-tutorial-python-relational-tables.html)
[20.4.5 表格中的文档](mysql-shell-tutorial-python-documents-in-tables.html)
[20.5 X 插件](x-plugin.html)
[20.5.1 检查 X 插件安装](x-plugin-checking-installation.html)
[20.5.2 禁用 X 插件](x-plugin-disabling.html)
[20.5.3 通过 X 插件使用加密连接](x-plugin-encrypted-connections.html)
[20.5.4 将 X 插件与缓存 SHA-2 身份验证插件一起使用](x-plugin-sha2-cache-plugin.html)
[20.5.5 使用 X 插件的连接压缩](x-plugin-connection-compression.html)
[20.5.6 X 插件选项和变量](x-plugin-options-variables.html)
[20.5.7 监控 X 插件](x-plugin-system-monitoring.html)

[](<>)[](<>)[](<>)

本章介绍了另一种使用 MySQL 作为文档存储的方法，有时称为“使用 NoSQL”。如果您打算以传统（SQL）方式使用 MySQL，那么本章可能与您无关。

传统上，MySQL 等关系数据库通常需要在存储文档之前定义模式。本节中描述的特性使您能够将 MySQL 用作文档存储，这是一个无模式、因此模式灵活的文档存储系统。例如，当您创建描述产品的文档时，您无需在存储和操作文档之前了解和定义任何产品的所有可能属性。这与使用关系数据库并将产品存储在表中不同，后者在将任何产品添加到数据库之前必须知道并定义表的所有列。本章中描述的特性使您可以选择如何配置 MySQL，仅使用文档存储模型，或者将文档存储模型的灵活性与关系模型的强大功能相结合。

要将 MySQL 用作文档存储，请使用以下服务器功能：

-   X Plugin 使 MySQL 服务器能够使用 X 协议与客户端通信，这是使用 MySQL 作为文档存储的先决条件。从 MySQL 8.0 开始，X Plugin 默认在 MySQL Server 中启用。有关验证 X 插件安装以及配置和监控 X 插件的说明，请参阅[第 20.5 节，“X 插件”](x-plugin.html).

-   X 协议同时支持 CRUD 和 SQL 操作，通过 SASL 进行身份验证，允许命令的流式传输（流水线），并且在协议和消息层上是可扩展的。与 X 协议兼容的客户端包括 MySQL Shell 和 MySQL 8.0 连接器。

-   使用 X 协议与 MySQL 服务器通信的客户端可以使用 X DevAPI 来开发应用程序。X DevAPI 提供了一个现代编程接口，其设计简单但功能强大，为已建立的行业标准概念提供支持。本章解释了如何开始在 MySQL Shell 中使用 JavaScript 或 Python 实现的 X DevAPI 作为客户端。看[X DevAPI 用户指南](https://dev.mysql.com/doc/x-devapi-userguide/en/)有关使用 X DevAPI 的深入教程。
