暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[ACDU 翻译] MySQL 8.4.2.2优化字符和字符串类型

原创 由迪 2021-05-19
476

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

  • 当您不需要特定于语言的排序规则功能时,请使用二进制排序规则顺序进行快速比较和排序操作。您可以使用 BINARY运算符在特定查询中使用二进制排序规则。
  • 比较来自不同列的值时,请尽可能使用相同的字符集和排序规则声明这些列,以避免在运行查询时进行字符串转换。
  • 对于小于8KB的列值,请使用二进制 VARCHAR而不是 BLOB。该GROUP BYORDER BY条款可以生成临时表,这些临时表可以使用的 MEMORY存储引擎,如果原来的表不包含任何BLOB 列。
  • 如果表包含名称和地址之类的字符串列,但是许多查询未检索到这些列,请考虑将字符串列拆分为单独的表,并在必要时使用带有外键的联接查询。当MySQL从一行中检索任何值时,它将读取一个包含该行所有列(可能还有其他相邻行)的数据块。保持每行较小,仅使用最常使用的列,可允许更多行容纳在每个数据块中。这样的紧凑表减少了常见查询的磁盘I / O和内存使用量。
  • 当您将随机生成的值用作InnoDB表中的主键时,请尽可能在其前面加上一个升序值,例如当前日期和时间。当连续的主值在物理上彼此靠近存储时,InnoDB可以更快地插入和检索它们。
  • 有关为何数字列通常比等效字符串列更可取的原因请参见第8.4.2.1节“优化数字数据”
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论