为了账号安全,请及时绑定邮箱和手机立即绑定

字符集和排序规则会影响 MySQL/MariaDB 中的查询性能吗?

字符集和排序规则会影响 MySQL/MariaDB 中的查询性能吗?

PHP
犯罪嫌疑人X 2022-10-28 09:26:01
我一直在研究 MariaDB 中具有大型和扩展数据库的数据库。数据库由 PHP 应用程序访问。我将 DB 字符集和排序规则设置为 utf8mb4 和 utf8mb4_unicode_ci但并非我的所有表格都有文本(varchar、文本等)列。有些表只包含关系,因此所有列都是数字类型(int、bigint 等)或日期/时间等,但不是文本类型。在我只保留数字的表格中,我是否需要保留 unicode 多字节字符集/排序规则,或者我可以选择其他内容?最重要的是这会影响查询性能吗?
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

即使您的表具有排序规则和字符集,具有数值的列也不需要任何排序规则和字符集定义。因此,考虑选择类似的东西是无关紧要的。您可以创建如下表而不为数字列定义排序规则:


CREATE TABLE t1

(

    c0 INT NOT NULL,

    c1 CHAR(10) CHARACTER SET latin1

) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;

是的,它确实会影响查询性能。请注意,字符集本质上是用不同字节数保存的单个字符。如果只有英文字母,通常拉丁文是最好的字符集。此外,根据您的 MySQL 版本,不同的字符集提供不同的性能。也请参考这篇文章。这可能会有所帮助。


https://www.percona.com/blog/2019/02/27/charset-and-collation-settings-impact-on-mysql-performance/


查看完整回答
反对 回复 2022-10-28
?
慕神8447489

TA贡献1780条经验 获得超1个赞

影响性能的事情,大致按顺序

  • 索引不佳

  • 查询表述不佳

  • 磁盘 I/O

  • 满足查询需要读取的行数

  • 在这个列表的底部:表达式、函数、字符集、排序规则等。

即,使用你需要的字符集和排序规则;不用担心性能


查看完整回答
反对 回复 2022-10-28
  • 2 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信