前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL 5.7 vs 8.0,哪个性能更牛?网友吵开了锅!

MySQL 5.7 vs 8.0,哪个性能更牛?网友吵开了锅!

原创
作者头像
程序员白楠楠
修改于 2021-01-19 02:31:04
修改于 2021-01-19 02:31:04
2.6K00
代码可运行
举报
运行总次数:0
代码可运行
  • 背景
  • 前提
  • 环境
  • 测试
    • 双1模式下
    • 0 2 模式下
  • 结论

背景

测试mysql5.7和mysql8.0 分别在读写、只读、只写模式下不同并发时的性能(tps,qps)

前提

  • 测试使用版本为mysql5.7.22和mysql8.0.15
  • sysbench测试前先重启mysql服务,并清空os的cache(避免多次测试时命中缓存)
  • 每次进行测试都是新生成测试数据后再进行mysql5.7和mysql8.0的测试
  • 每次测试时保证mysql5.7和mysql8.0的配置参数一致
  • 整理了一份328页MySQLPDF文档

环境

机器 cat /etc/redhat-release | xargs echo '版本 ' && dmidecode -s system-product-name | xargs echo '是否虚拟化 ' && cat /proc/cpuinfo |grep "processor"|wc -l | xargs echo 'cpu核数 ' 版本 CentOS Linux release 7.5.1804 (Core) 是否虚拟化 KVM cpu核数 4

myql5.7.22

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
5.7.22-log
innodb_buffer_pool_size 128M
innodb_log_buffer_size  64M
innodb_log_file_size    48M
binlog_format   ROW
log_bin ON
transaction_isolation   REPEATABLE-READ

mysql8.0.15

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
8.0.15
innodb_buffer_pool_size 128M
innodb_log_buffer_size  64M
innodb_log_file_size    48M
binlog_format   ROW
log_bin ON
transaction_isolation   REPEATABLE-READ

sysbench

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sysbench -V
sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3)

测试

  • 在不同的持久化策略下(binlog, redo log持久化)mysql5.7和mysql8.0 在读写模式、只读模式、只写模式(oltp_read_write,oltp_read_only,oltp_write_only)下的性能表现
  • sysbench 测试时间为60s,测试的表数量为20
  • 测试分别在双1模式(安全性)和0 2模式(高性能)下进行

参数

可选值

含义

sync_binlog

0

binlog刷盘持久化由操作系统完成,性能好,存在丢失binlog的风险

sync_binlog

1

事务提交后刷盘持久化,最安全

sync_binlog

N

在每N个事务提交后进行刷盘持久化

innodb_flush_log_at_trx_commit

0

每秒钟写redo log 并刷盘持久化

innodb_flush_log_at_trx_commit

1

事务提交后写redo log 并刷盘持久化,最安全

innodb_flush_log_at_trx_commit

2

事务提交后写redo log , 每秒刷盘持久化

双1模式下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SHOW GLOBAL  VARIABLES WHERE Variable_name IN('sync_binlog','innodb_flush_log_at_trx_commit');
+--------------------------------+-------+
| Variable_name                  | Value |
+--------------------------------+-------+
| innodb_flush_log_at_trx_commit | 1     |
| sync_binlog                    | 1   |
+--------------------------------+-------+

mysql5.7和mysql8.0 在读写模式下的表现

  • 双1 配置,读写模式下,mysql5.7.22 和mysql8.0.15 tps 、qps 性能差不多,mysql8.0.15 在120 线程并发时,性能出现了下降抖动

mysql5.7和mysql8.0 在只读模式下的表现

  • 双1 配置,只读模式下,mysql5.7.22 的tps、qps比mysql8.0.15 好1/3 左右;并发线程数增加后,tps、qps并没有随着增加,反而出现了下降的趋势

mysql5.7和mysql8.0 在只写模式下的表现

  • 双1 配置,只写模式下,随着并发数的上升,mysql5.7.22 的性能比mysql8.0.15 好1/4左右

0 2 模式下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SHOW GLOBAL  VARIABLES WHERE Variable_name IN('sync_binlog','innodb_flush_log_at_trx_commit');
+--------------------------------+-------+
| Variable_name                  | Value |
+--------------------------------+-------+
| innodb_flush_log_at_trx_commit | 2     |
| sync_binlog                    | 0   |
+--------------------------------+-------+

mysql5.7和mysql8.0 在读写模式下的表现

  • 0 2配置,读写模式下,并发数低时,mysql5.7.22性能好于mysql8.0.15; 并发数比较高时,mysql8.0.15 性能好于mysql5.7.22;在80 线程的并发以上时,性能开始下降

mysql5.7和mysql8.0 在只读模式下的表现

  • 0 2配置,只读模式下,mysql5.7.22性能比mysql8.0.15 好1/3左右;随着并发数的上升,性能也没有上升,反而有下降的趋势

mysql5.7和mysql8.0 在只写模式下的表现

  • 0 2 配置,只写模式下,mysql5.7.22的tps 抖动比较大;mysql5.7.22 的qps比mysql8.0.15好1/3左右

结论

  • 整体来看,mysql5.7.22在读写模式、只读模式、只写模式下的表现是优于mysql8.0.15的
  • 随着并行数的增加,性能表现不会也跟着增加,还会出现下降
  • 本次测试结果是在配置很低的情况下进行的,不代表绝对

注意 sysbench 需要设置--db-ps-mode=disable 禁用预编译语句,不然并发测试线程多时会报下面的错误 FATAL: mysql_stmt_prepare() failed FATAL: MySQL error: 1461 "Can't create more than max_prepared_stmt_count statements (current value: 16382)" FATAL: mysql_stmt_prepare() failed FATAL: MySQL error: 1461 "Can't create more than max_prepared_stmt_count statements (current value: 16382)" FATAL: thread_init' function failed: /usr/local/share/sysbench/oltp_common.lua:288: SQL API error FATAL: mysql_stmt_prepare() failed FATAL: MySQL error: 1461 "Can't create more than max_prepared_stmt_count statements (current value: 16382)" FATAL:thread_init' function failed: /usr/local/share/sysbench/oltp_common.lua:288: SQL API error FATAL: mysql_stmt_prepare() failed

整理了一份328页MySQLPDF文档

使用脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 cat sysbench_test_mysql5.7_8.0_tps_qps.sh
#!/bin/bash
#用于sysbench 测试在读写模式、只读模式、只写模式下 mysql5.7和mysql8.0 的tps,qps
#nohup bash $0 >/tmp/sysbench_test 2>& 1 &
#

user=admin
passwd=admin
ports="8015 57222"
host=127.0.0.1
sysbench_test_mode="oltp_read_write oltp_read_only oltp_write_only"
sysbench_test_info_path=/tmp/sysbench-test

function red_echo () {

        local what="$*"
        echo -e "$(date +%F-%T) \e[1;31m ${what} \e[0m"
}

function check_las_comm(){
    if [ $1 -ne 0 ];then
        red_echo $2
        exit 1
    fi
}

function  restart_mysqld(){
  service mysqld${1} restart
  sleep 2
}

function  purge_binlog(){
port=$1
mysql -u$user -p$passwd -P$port -h$host<<EOF
purge binary logs before now();
EOF
}


function clean_os_cache(){
  echo 3 > /proc/sys/vm/drop_caches
}

function  sysbench_with_diff_thread(){


thread_num=$1
port=$2
order=$3
test_mode=$4
sysbench /usr/local/share/sysbench/${test_mode}.lua --mysql_storage_engine=innodb  --table-size=100000 --tables=20 --mysql-db=test_1 --mysql-user=$user --mysql-password=$passwd --mysql-port=$port  --mysql-host=$host --threads=$thread_num  --time=60 --report-interval=2 --db-ps-mode=disable --events=0 --db-driver=mysql $order

}

function  main(){
for test_mode in $sysbench_test_mode;do

  for port in $ports;do
    for thread_num in {5,10,20,30,40,80,120,200};do
      restart_mysqld "$port"
      check_las_comm  "$?" "restart mysqld${port} failed "
      clean_os_cache
      purge_binlog "$port"

      red_echo "sysbench $thread_num  threads cleanup mysqld${port}"
      sysbench_with_diff_thread "$thread_num" "$port" "cleanup" "$test_mode">/dev/null

      red_echo "sysbench $thread_num  threads prepare mysqld${port}"
      sysbench_with_diff_thread "$thread_num" "$port" "prepare" "$test_mode">/dev/null

      mkdir -p $sysbench_test_info_path
      red_echo "sysbench $thread_num  threads run mysqld${port} $test_mode"
      sysbench_with_diff_thread "$thread_num" "$port" "run" "$test_mode" > $sysbench_test_info_path/${test_mode}_${thread_num}_$port

      # service mysqld{port} stop
    done
  done
done

}

main

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
TenSec 2018:腾讯云天御助力营销场景反欺诈
导读 10月10日上午,2018腾讯安全国际技术峰会(TenSec)在深圳举行。腾讯云高级研究员陈炳文在峰会上带来了题为《The Application of Anti-fraud in Marketing Risk Control》的议题分享。他指出,在网络营销中“羊马牛”党等黑产逐渐演变壮大,给商家带来巨额损失。针对营销黑产,腾讯云天御反欺诈系统搭建的多层级安全体系能够从数据安全、AI 组件、AI 安全模型和风控服务四个层面实施有效防护。 (陈炳文在2018腾讯安全国际技术峰会) “羊马牛”党猖獗
腾讯云安全
2018/10/12
5.5K0
TenSec 2018:腾讯云天御助力营销场景反欺诈
一年拦截垃圾达400亿条? | 网易云创沙龙解密如何利用互联网业务赋能解决企业数字化转型
分享讲师分别为网易云资深解决方案架构师张亮、网易大数据的资深数据产品专家王文开、网易云安全技术总监高民、网易云企业服务部首席架构师李鲁。
养码场
2018/08/10
8860
永安在线联合FreeBuf发布《业务安全蓝军测评标准白皮书》
与基础安全的严防死打不同,业务安全的目标通常不是杜绝攻击,而是将攻击流量的占比控制在可接受的范围内,平衡攻击损失与业务盈利间的关系,保证业务收益的最大化。当前,业务安全问题缺乏一套评估体系,能够数字化体系化的描述遭受攻击带来的危害程度及策略实施后的效果等。基于以上需求与目标,永安在线鬼谷实验室面向行业推出了一套针对业务安全的蓝军测评标准。
FB客服
2020/03/06
1.3K0
《风控要略:互联网业务反欺诈之路》一万字读后详细总结
本书的内容正如书名所述,是为要略而非攻略,即作者站在一个更为宏观的角度,以自身的从业经验对当今风控领域做了一番较为全貌的总结概述。书中的章节内容有精有简,既为要略,那么就无法苛求其内容都足够全面与详细。它更像是一部风控领域的科普类简述作品,在广度上能较好地让读者了解到风控各方面的现状及走向,但若要谈及深度,则多少有种“师父领进门,修行在个人”的感觉。这本书其实有挺多人推荐,一方面是书籍出版时间距离现在很近,一方面则是填补风控业务领域入门书籍的空白,只是通篇读完,好的地方是有,值得吐槽的地方也不少。总而言之,对于像我这样风控小白而言,还是值得翻阅一番。
朱季谦
2021/03/02
1.7K0
《风控要略:互联网业务反欺诈之路》一万字读后详细总结
以“码”还“码”,腾讯怎么打好反黑产这场仗
经验丰富的水手往往知道,在互联网这个汹涌海洋中,除了资源、商船和泡沫外,还有名叫暗网的暗礁,以及一群形态目标各异、却同样贪婪的海盗——羊毛党、黄牛党等黑灰产。周斌和他的团队一直在做的,是帮助航行的船只辨别这些伪装成正常船只的海盗船,及时预警并予以驱赶。 (腾讯安全云业务安全总监周斌) 6月26—27日,腾讯To B生态平台——云启特别推出了“产业生态助力计划”第一期,为腾讯产业生态投后公司提供专属、定制化的课程培训服务,希望通过输出腾讯的能力、资源以及经验教训等,帮助投后伙伴躲避障碍、少走弯路。 现场
腾讯云安全
2019/07/01
1.2K0
以“码”还“码”,腾讯怎么打好反黑产这场仗
大数据技术如何有效阻击网络黑产?
最近,互联网行业的“网络安全”事件频发。仅8月就发生了多起网络黑产攻击事件,包括国内某重要通信企业多地子公司遭遇Globelmposter勒索病毒攻击。华住集团被曝旗下酒店约5亿条数据被泄露。新三板公司瑞智华胜假借与运营商合作之名,非法窃取了30亿条用户数据,涉及BAT等近百家互联网公司的用户。
个推君
2019/03/12
1.3K0
大数据技术如何有效阻击网络黑产?
第4期 | 汽车App成黑灰产“发财”新路径,倒卖积分、哄抢礼品、代用户运营
顶象防御云业务安全情报中心监测到,某知名新能源汽车App遭黑灰产疯狂薅羊毛,给车企带来经济与用户的双重损失。
顶象技术
2022/08/15
8770
“618”结束我们走访了十家电商,三成风控不及格
这次我们走访了10家电商,今年618的安全考验7家欢喜3家愁。 为什么而愁? 一些电商早早地就接入防刷,做好了准备,但实战来临时防护效果欠佳。一是高估了自研能力,二是对于刚起步的电商“新选手”,安全能力布局和对抗经验不够。618大促结束后用户开始抱怨没有抢到优惠券,企业管理者也感慨营销资金打了水漂。 那么要打赢这场安全战役,需要干掉哪些痛点? 专业黑灰产瞄准“拼团砍价” 首当其冲的就是要迎战以羊毛党为代表的黑灰大军。黑灰产在今年“618”期间升级了作案手段。薅优惠券这种虚拟物资已经不能让他们满足了,低价
腾讯云安全
2019/06/24
1.8K0
“618”结束我们走访了十家电商,三成风控不及格
游戏黑灰产识别和溯源取证
一般来说,黑色产业指的是从事具有违法性的活动且以此来牟取利润的产业。而灰色产业则指的是不明显触犯法律和违背道德,游走于法律和道德边缘,以打擦边球的方式为“黑产”提供辅助的争议行为。
小道安全
2022/03/31
3.6K0
游戏黑灰产识别和溯源取证
“围剿”黑产,揭秘O2O、电商和互联网金融的大数据风控之道
“围剿”黑产,揭秘O2O、电商和互联网金融的大数据风控之道
数据猿
2018/04/19
1.1K0
“围剿”黑产,揭秘O2O、电商和互联网金融的大数据风控之道
反欺诈黑产总结
羊毛党专注于市场上各类机构的营销活动,以低成本甚至零成本换取高额奖励,其主要活跃在 O2O 平台或电商平台。
用户3578099
2022/11/25
2.1K0
反欺诈黑产总结
《调研报告》:防范城市消费券黑灰产非一己之力
近日,顶象发布的《城市消费券安全调研报告》(以下简称《调研报告》)中明确提出,自消费券发放之日起,黑灰产便盯上了这块蛋糕。据不完全统计,190多亿的消费券,消费者只抢到29%。
顶象技术
2022/11/09
3740
《调研报告》:防范城市消费券黑灰产非一己之力
第十五期 | 人人喊打的医院“号贩子”,都用哪些手段抢号?
北京的李先生要挂某知名医院的号,连续2周挂号,始终未成功。无奈之下,李先生只能寻求“号贩子”的帮助,并最终加价500元购买到了一个号。这不仅浪费了李先生的时间,也增加了治疗成本,对于他的身心健康造成了一定的影响。
顶象技术
2023/04/12
1.9K0
第十五期 | 人人喊打的医院“号贩子”,都用哪些手段抢号?
所到之处,寸草不生!深扒黑产工具和羊毛党操作流程
导读:随着“互联网+”的兴起,越来越多的公司开始上线互联网业务,为了吸引客户或引来更多的流量,企业就需要进行各种促销与补贴活动,但这些原本应该给真实用户带来优惠的活动,却被互联网上的另一群团体——黄牛、羊毛党盯上。
IT阅读排行榜
2020/07/29
3.3K0
所到之处,寸草不生!深扒黑产工具和羊毛党操作流程
重磅!顶象发布《城市消费券安全调研报告》
近日,顶象正式发布了《城市消费券安全调研报告》(以下简称《调研报告》)。《调研报告》共四章13小节,对城市消费券的发放规模、核销情况、风险、黑灰产的作弊手段、作弊工具以及如何防控提出了建设性意见。
顶象技术
2022/11/02
4080
重磅!顶象发布《城市消费券安全调研报告》
内外勾结年入百万,谁吃了智慧零售第一波福利?
楔子 随着科技发展和消费升级,智慧零售之风愈演愈烈,传统零售企业纷纷转型升级,线上线下相融合,全面迈向数字化,重新整合人、货、场。扫码领红包、整点抢优惠券、集卡送好礼、分享得立减金...智慧零售的发展依然离不开各种各样的营销福利活动。 巨大福利补贴背后,黑产早已伺机出动,沉浸在羊毛雨中乐此不疲,平台系统也在升级制定各种规则对抗羊毛党,而让平台意想不到的是,很多黑产其实就是自己公司的内部员工,正所谓:“日防夜防 ,家贼难防”。 一、内鬼是如何炼成的 “撸我们公司羊毛现在已经是一套成熟的流程,每个订单下来
腾讯防水墙
2019/11/08
1.4K0
内外勾结年入百万,谁吃了智慧零售第一波福利?
产业安全专家谈|零售电商如何做好营销风控?
“双十一”刚刚过去,但是幕后的故事却不少。尤其是零售电商狙击黑灰产的战役,让不少商家到现在还没缓过神。商家们更是迫切地想知道,如何才能做好营销风控,如何才能更高效地抵御“羊毛党”,如何才能安心地卖货。
腾讯安全
2019/11/14
10.5K0
产业安全专家谈|零售电商如何做好营销风控?
羊毛党:电商之殇
天下熙熙,皆为利来;天下攘攘,皆为利往。一年一度的618营销大战正在打响,而狂欢背后,黑灰产团伙也在蓄谋一场“薅羊毛”的饕餮盛宴。
腾讯安全
2022/07/01
1.2K0
羊毛党:电商之殇
产业安全公开课:演唱会门票秒光,企业如何高效对抗黄牛党?
疫情结束后,文娱产业迎来复苏潮,线下演出的全面开启带动了人们的文化消费。然而,“抢票难”成为消费者面临的一个大问题,企业在营销场景中面临的挑战也随之而来:如何提供良好的购票体验?如何防止恶意薅羊毛行为?
腾讯安全
2023/04/14
1.1K0
产业安全公开课:演唱会门票秒光,企业如何高效对抗黄牛党?
购物节火热大促,零售电商如何做好安全防护?
年终两个月,为保证在两波电商大战中能够突围而出,各大零售电商企业把控着平台运维、商品管理、仓储物流、推广引流、售后服务等各个环节,避免任意失误给企业带来损失。一个购物狂欢节背后,是无数电商人的血与泪。
腾讯安全
2019/12/13
4.5K0
购物节火热大促,零售电商如何做好安全防护?
推荐阅读
相关推荐
TenSec 2018:腾讯云天御助力营销场景反欺诈
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档