原创: 管长龙 译
作者:Vadim Tkachenko


通过测试,比较 MySQL 5.7.25 和 MySQL 8.0.15 之间字符集和校验规则的设置所带来的性能差异。测试环境

  • 系统 | Ubuntu 18.04 LTS (bionic)
  • 内核 | 4.15.0-20-generic
  • 处理器 | physical = 2, cores = 28, virtual = 56, hyperthreading = yes
  • 型号 | 56xIntel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz<
  • 内存 | 376.6G

我将用 sysbench 测试不同数量的线程下 oltp_read_only 和 oltp_point_select 两种工作负载。

sysbench oltp_read_only --mysql-ssl=off --report-interval=1 --time=300 --threads=$i --tables=10 --table-size=10000000 --mysql-user=root runsysbench oltp_point_select --mysql-ssl=off --report-interval=1 --time=300 --threads=$i --tables=10 --table-size=10000000 --mysql-user=root ru

OLTP_READ_ONLY (latin1 字符集)的结果:

OLTP_POINT_SELECT(latin1 字符集)的结果:

我们可以看到,在 OLTP_READ_ONLY 的工作负载中,MySQL 8.0.15 慢了 10%,而对于 OLTP_POINT_SELECT 的工作负载,MySQL 8.0.15 慢了 12-16%。
虽然差异不一定很大,但这足以说明 MySQL 8.0.15 在这组测试的各种工作负载中,性能不如 MySQL 5.7.25。
但是,如果我们使用 utf8mb4 字符集而不是 latin1,结果的似乎会改变。
因为 utf8mb4 现在是 MySQL 8.0 中的默认字符集,让我们比较 MySQL 5.7.25 的 latin1 和 utf8mb4。
但在我们这样做之前,让我们来看看 COLLATION(校对字符集)。
MySQL 5.7.25 使用默认排序规则 utf8mb4_general_ci,但是,我读到要对东欧语言使用正确的排序和比较,您可能需要使用 utf8mb4_unicode_ci 排序规则。
所以让我们比较每个版本 latin1 和 utf8mb4(默认排序规则)。首先是 5.7:

所以在这里我们可以看到 MySQL 5.7 中的 utf8mb4 实际上比 latin1 慢得多(55-60%)
对于 MySQL 8.0.15 也一样

对于 MySQL 8.0,utf8mb4 的命中率要低得多(高达11%)
现在让我们比较 utf8mb4 的所有排序规则
对于 MySQL 5.7

如果你打算使用 utf8mb4_unicode_ci,你将获得更高的性能(与 utf8mb4_general_ci 相比)
对于 MySQL 8.0.15

现在让我们在 utf8mb4 中使用默认排序规则比较 MySQL 8.0 和 MySQL 5.7:

在这种情况下,MySQL 8.0 实际上比 MySQL 5.7 好34%

结论

  • MySQL 5.7 在 latin1 字符集中胜过 MySQL 8.0
  • 如果我们使用 utf8mb4 字符集,MySQL 8.0 会大幅超越 MySQL 5.7
  • 请注意,MySQL 8.0 现在默认为 utf8mb4 ,而 MySQL 5.7 默认为 latin1
  • 当运行 MySQL 8.0 与 MySQL 5.7 之间的比较时,请注意您正在使用的字符集,因为它可能会影响比较很多。

angular select设置默认选中_技术分享 | Charset 和 Collat??ion 设置对 MySQL 性能的影响...相关推荐

  1. mysql 如何设置延迟启动_技术分享 | MySQL 网络延时参数设置建议

    作者:毛思平 工作11年,从事数据库工作7年,主要在金融行业.主要是做oracle,mysql.现在在农行软开中心主要做数据库应用方面的研究. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授 ...

  2. angular select设置默认选中_改进 Angular + Jest 项目中组件测试的调试

    @angular-extensions/pretty-html-log 原文链接​medium.com原作者:Kevin Kreuzer​medium.com 译者: 知乎用户​www.zhihu.c ...

  3. antd radio设置默认选中_单选框radio总结(获取值、设置默认选中值、样式)

    单选框 radio 是 否 1.获取值 $("input[name='killOrder']:checked").val(); $('input:radio:checked').v ...

  4. mysql5.7复制集_技术分享 | 克隆:更优雅的创建 MySQL 实例副本

    背景 大多情况下,需要可靠而有效地克隆 MySQL 实例数据.这包括 MySQL 高可用的解决方案,其中需要在将实例加入组复制集群之前配置实例,或者在经典复制模型中将其添加为 Slave. 为复制拓扑 ...

  5. Vue select的使用以及select设置默认选中,element select联动不能选择问题

    Vue中select下拉框的默认选中项的三种情况_vue option默认选择_July++的博客-CSDN博客 vue中select的使用以及select设置默认选中_燕山八音的博客-CSDN博客 ...

  6. php 下拉框默认选中,select标签设置默认选中的选项方法,select标签

    select标签设置默认选中的选项方法,select标签 方法有两种. 第一种通过的属性来设置选中项,此方法可以在动态语言如php在后台根据需要控制输出结果. < select id = &qu ...

  7. php导航默认选中,html中关于select标签如何设置默认选中的选项详解

    方法有两种. 第一种通过的属性来设置选中项,此方法可以在动态语言如php在后台根据需要控制输出结果.< select id = "sel" > < option ...

  8. html设置默认选中状态,html中select标签用法解析及如何设置select的默认选中状态...

    当提交表单时,浏览器会提交选定的项目,或者收集用逗号分隔的多个选项,将其合成一个单独的参数列表,并且在将 表单数据提交给服务器时包括 name 属性. 标签可选的属性 属性         值     ...

  9. select html默认选中的值,HTML/jquery中的select标签设置默认选中取值

    一.jQuery中的select标签设置默认选中取值 每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了. 比如 1.设置value为pxx的项选中 $(" ...

最新文章

  1. 2007 China MVP Open Day
  2. 学python可以干嘛-学完Python可以做什么?
  3. 2017-2018-1 20155207 《信息安全系统设计基础》第四周学习总结
  4. django mysql debug_部署前准备--使用Mysql之Django Debug Toolbar安装以及配置
  5. getpwnam学习
  6. 更新——Canvas画布动画效果之实现倒计时
  7. 理解图像配准中的LMeds、M-estimators与RANSAC算法
  8. python web开发,organization的model设计
  9. 两种DIV水平居中的方法
  10. .net 延时操作_锁、CAS操作和无锁队列的实现
  11. python的类中包含什么_Python中的类(中)
  12. Airflow安装教程
  13. 图解Python编程:从入门到精通系列教程(附全套速查表)
  14. 个人学习笔记:路由交换学习思路
  15. 杰理AD14N/AD15N---Timer定时器问题
  16. 林子雨 慕课答案2021新版
  17. JavaScript --------WebS APIs学习之本地存储
  18. 电压源和电流的关联参考方向_什么是电流,电压的关联参考方向?
  19. android短信验证码登录,Android注册登录实时自动获取短信验证码
  20. oracle查询倒叙,ORACLE 索引结构--倒叙索引:

热门文章

  1. volatile的学习总结
  2. Java-二分查找算法
  3. matlab梯度检测,Matlab:关于梯度的一阶导数边缘检测
  4. 概要设计和详细设计区别_一体化工程设计:打破前期工程设计与详细设计之间的藩篱...
  5. c++算术溢出_二进制安全之堆溢出(系列)——CTF环境配置
  6. cmake / add_compile_options、CMAKE_CXX_FLAGS 和 add_definitions 区别
  7. 乐鑫官宣:ESP32-S3真的来了!
  8. linux qt5.9 下载,在Ubuntu17.04上安装QT5.9.0(下载、安装、问题解决)
  9. 本地生活JAVA版本_赶集生活java版
  10. x10i升级android4.0,升级Android 2.1改变归纳_索尼爱立信 X10i_手机Android频道-中关村在线...