文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

10.4.2.2 优化字符和字符串类型

对于字符和字符串列,请遵循以下准则

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

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

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

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

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

  • 请参见 第 10.4.2.1 节,“优化数值数据”,了解为什么数值列通常比等效的字符串列更可取。