探索 MySQL 体系结构

已完成

MySQL 是基于 SQL 标准的关系数据库。 数据存储在服务器上,位于由列和行组成的表中。 客户端可以通过网站、应用或使用 MySQL Workbench 或 dbForge等集成开发环境 (IDE) 访问服务器数据。 本模块中的示例使用 MySQL Workbench。

显示自动生成的图形用户界面描述的屏幕截图。

MySQL 支持使用不同的存储引擎。 默认存储引擎是 InnoDB,这是 Azure Database for MySQL 唯一支持的存储引擎。 包括数据库、表、日志和状态文件在内的数据文件存储在数据目录中。 可以通过运行以下命令显示数据文件的位置:

SELECT @@datadir;

注意

Azure Database for MySQL 不提供对基础文件系统的访问权限。 可以查看数据文件的存储位置,但无法访问实际文件(除非通过数据库进行访问)。

MySQL 将全局参数保存在名为 my.cnf 的文件中。 在 Azure Database for MySQL 中,大部分服务器配置参数都可在 Azure 门户中进行管理。 导航到 Azure Database for MySQL 服务器并选择“服务器参数”。 或者,你可以使用 Azure CLI。

查询缓存

在版本 5.1 之后,查询缓存不再是 MySQL 的一项功能。 在 5.7 中,查询缓存已被弃用,在版本 8.1 中,查询缓存已被移除。 做出此项更改的目的是提高性能。

客户端/服务器协议

MySQL 客户端/服务器协议是半双工的,这意味着它要么发送数据,要么接收数据,但不同时支持这两个功能。 如果客户端发送复杂查询,服务器必须等待,直到接收到完整的查询。

客户端将查询作为一个数据包进行发送。 max_allowed_packet 定义查询、字符串或参数的最大大小。 在 Azure 门户中,导航到 Azure Database for MySQL 服务器,选择“服务器参数”,然后在“搜索”中输入“max_allowed_packet”。

如果服务器具有要返回的大型记录集,必须在其响应新查询之前返回整个记录集。 因此,请务必先写入筛选结果集的查询,然后再让服务器发送,以便只返回所需的记录。

MySQL 客户端/服务器协议支持客户端应用程序与数据库服务器之间的安全套接字层 (SSL) 连接,可帮助防止中间人攻击。 将 MySQL Workbench 配置为需要与 Azure Database for MySQL 服务器进行加密连接:

  1. 请在顶部菜单中,选择“数据库”。
  2. 请选择“管理连接”,然后编辑现有连接或新建连接。 管理服务器连接对话框已经显示。
  3. 在“连接”下,选择“SSL”选项卡。
  4. 在“使用 SSL”旁边,选择“需要”。
  5. 在“SSL CA 文件”旁边,提供证书颁发机构文件的路径。

在 Azure 门户中,导航到 Azure Database for MySQL 服务器,并在左侧菜单中选择“连接安全性”。 在 SSL 设置下,将“强制实施 SSL 连接”设置切换为“启用”或“禁用”。 还可以设置“最低 TLS 版本”。

MySQL 守护程序

MySQL 守护程序(也称为 MySQL 服务器或 mysqld)是一个服务程序,用于管理对其他 MySQL 组件的访问,包括 MySQL 数据目录、mysqladmin 和查询优化器。 mysqld 服务程序是使用 mysqld_safe 脚本启动的。 每当启动或重启 Azure Database for MySQL 服务器时,后台都会运行此脚本。

注意

不使用 Azure Database for MySQL 时,可将其停止;需要时,再将其重启。 使用 Azure 门户、Azure Cloud Shell、MySQL Workbench 或 MySQL for Visual Studio 启动和停止服务器。

只要服务器在运行,mysqld 服务就会持续运行。 停止 Azure Database for MySQL 服务器后,将无法访问任何 MySQL 服务,直到重启服务器才可访问。

注意

Azure Database for MySQL 是一项服务,它不提供对单个文件(例如 MySQL 守护程序)的访问。

数据类型

MySQL 支持多类数据类型:

  • 数字 - 整数 (INT)、小整数、十进制(DEC、FIXED)、数字、浮点、实数、双精度 (DOUBLE)、BIT
  • 日期和时间 - 日期、时间、日期/时间、时间戳、年份
  • 字符串 - CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 和 SET
  • 空间 - 几何类型
  • JSON - 自版本 5.7 起,已经支持原生 JSON 数据类型

请参阅 MySQL 数据类型文档,了解不同存储引擎支持的数据类型、同义词和某些数据类型的更新行为。