预发布:2024-07-17
X DevAPI 详细介绍了 mysqlx
模块以及 X DevAPI 的功能,这些功能使您可以将 MySQL 作为文档存储使用。当 MySQL Shell 通过 X 协议连接到 MySQL 服务器时,X DevAPI 使您能够同时处理关系数据和文档数据。
像 MySQL 这样的关系数据库通常需要定义模式才能存储文档。但是,您可以将 MySQL 用作文档存储,这是一种无模式的、因此模式灵活的文档存储系统。例如,当您创建描述产品的文档时,您无需在存储和操作这些文档之前知道并定义所有可能的属性。这不同于处理关系数据库并将产品存储在表中,在这种情况下,必须在将任何产品添加到数据库之前知道并定义表的所以列。
使用 X 协议与 MySQL 服务器通信的客户端可以使用 X DevAPI 开发应用程序。
X DevAPI 指定了一组通用的 CRUD 风格方法。该 API 由 MySQL Shell 在 JavaScript 和 Python 中实现。下表提供了使用 Python 语法使用 MySQL Shell 实现的示例丰富的使用信息链接。
按主题了解更多信息 | 描述 |
---|---|
连接和会话 | X DevAPI 会话是一个高级数据库会话概念,它不同于处理传统的低级 MySQL 连接。当使用 X 协议时,会话可以封装一个或多个实际的 MySQL 连接。使用这种更高抽象级别将物理 MySQL 设置与应用程序代码解耦。会话提供对 X DevAPI 的完全支持以及对 SQL 的有限支持。 |
CRUD 操作 | 使用 X DevAPI 执行创建、读取、更新和删除 (CRUD) 操作。MySQL 的核心领域始终是处理关系表。X DevAPI 通过添加对可以针对文档集合运行的 CRUD 操作的支持来扩展此领域。 |
处理集合 | 对集合使用 CRUD 操作并返回文档。对集合执行的最常见操作是创建、读取、更新和删除 (CRUD) 操作。 |
处理文档 | 创建集合后,它可以存储 JSON 文档。每个文档都有一个唯一的标识符,称为文档 ID,可以将其视为表的等效主键。文档 ID 值通常在添加文档时由服务器自动生成,但也可以手动分配。 |
处理关系表 | X DevAPI SQL CRUD 函数允许您以类似于使用传统 SQL 语句的方式处理关系表。使用 X DevAPI SQL CRUD 函数的 add() 和 select() 方法,这些方法类似于对表使用 SQL 客户端发出 INSERT 和 SELECT 语句。 |
处理关系表和文档 | 将文档用于应用程序中的非常具体的任务,并将关系表用于其他任务。或者,一个非常简单的文档应用程序可以超出文档模型,并逐步集成或迁移到功能更强大的关系数据库。这样,就可以结合文档和关系表的优势。SQL 表提供了严格类型的数值语义、可预测和优化的存储。文档提供了类型灵活性和模式灵活性和非标量类型。 |
语句发出 | 使用事务将操作组合成一个原子单元。X DevAPI 支持保存点,使您能够在事务中设置一个命名的点,您可以恢复到该点。X DevAPI 通过 lockShared() 和 lockExclusive() 方法支持 MySQL 锁定,适用于 Collection.find() 和 Table.select() 方法。这使您可以控制行锁定以确保安全、事务性的文档更新,并在集合上避免并发问题。 |
处理结果集 | 所有数据库操作都会返回结果。返回的结果类型取决于执行的操作。 |
构建表达式 | 处理 CRUD 中使用的 MySQL 表达式时,可以使用两种方式指定语句。第一种是使用字符串来制定表达式,如果您以前使用 SQL 开发过代码,应该很熟悉。另一种方法是使用表达式构建器功能。 |
CRUD EBNF 定义 | 本节提供 X DevAPI 中可用对象的直观参考指南。 |
表达式 EBNF 定义 | 本节提供了 X DevAPI 中使用的表达式语言语法的直观参考指南。 |
有关使用 JavaScript 语法使用 MySQL Shell 实现 X DevAPI 的更多信息,请参阅