文档首页
MySQL 8.4 参考手册
相关文档 下载本手册

MySQL 8.4 参考手册  /  ...  /  优化字符和字符串类型

10.4.2.2  优化字符和字符串类型

对于字符和字符串列,请遵循以下指南

  • 当您不需要特定于语言的排序规则功能时,使用二进制排序规则顺序进行快速比较和排序操作。您可以使用 BINARY 运算符在特定查询中使用二进制排序规则。

  • 在比较来自不同列的值时,尽可能使用相同的字符集和排序规则声明这些列,以避免在运行查询时进行字符串转换。

  • 对于大小小于 8KB 的列值,请使用二进制 VARCHAR 而不是 BLOBGROUP BYORDER BY 子句可以生成临时表,如果原始表不包含任何 BLOB 列,则这些临时表可以使用 MEMORY 存储引擎。

  • 如果表包含字符串列,例如姓名和地址,但许多查询不检索这些列,请考虑将字符串列拆分为单独的表,并在需要时使用外键进行联接查询。当 MySQL 从行中检索任何值时,它会读取包含该行所有列(以及可能的其他相邻行)的数据块。保持每个行很小,只包含最常用的列,可以使每个数据块中容纳更多行。这样的紧凑表可以减少常见查询的磁盘 I/O 和内存使用量。

  • 当您在 InnoDB 表中使用随机生成的值作为主键时,如果可能,请在其前面加上一个递增的值,例如当前日期和时间。当连续的主键值在物理上存储在彼此附近时,InnoDB 可以更快地插入和检索它们。

  • 请参阅 第 10.4.2.1 节,“优化数值数据”,了解为什么数值列通常优于等效的字符串列的原因。