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

MySQL企业版与社区版的性能究竟有何差异?

215

点击标题下「蓝色微信名」可快速关注

很多数据库都提供免费版和收费版,有的叫社区版和企业版,从名字就能推断,如果是企业用途,无论从支持上,还是license版权上,需要选择企业版,如果是个人学习,社区版就够了。

徐老师的这篇文章MySQL企业版与社区版的性能有差异吗?》给我们讲解了企业版和社区版的性能方面究竟有何差异,这可能是很多朋友关注的问题,也是疑问最多的问题。

经常会被问到MySQL的企业版和社区版究竟有何不同?通常的回答是企业版提供了企业级的安全组件、独立安装的工具和原厂提供的售后服务。但毕竟有些用户是非常认真的,下一个问题往往就是,如果单纯比较MySQL数据库服务器的性能,企业版是否会更好?按照以往的回答方式是,性能更好,但是具体提升了多少,没有数字的量化是没有说服力的,但这一次不一样了,从MySQL 8.0.35开始,MySQL的工程团队在企业版上显著提升了性能,并且进行了相关对比测试,如下所示。

测试采用sysbench,它是一个广泛用于数据库基准测试的工具,特别是对于MySQL, sysbench的一个改编被用来在MySQL数据库上运行各种OLTP工作负载。在这次测试中,执行了四个不同的sysbench测试,每个测试捕获一个特定的OLTP工作负载特征。

1. OLTP RO: 只读模式,其中不执行UPDATE、DELETE或INSERT查询。查询组合包括,

  * 10 x POINT_SELECT

  * 1 x SELECT_SIMPLE_RANGES

  * 1 x SELECT_SUM_RANGES

  * 1 x SELECT_ORDER_RANGES

  * 1 x SELECT_DISTINCT_RANGES

2. POINT_SELECT: 多点选择SQL查询。

3. OLTP RW: 读和写SQL查询的混合。查询组合包括,

  * 10 x POINT_SELECT

  * 1 x SELECT_SIMPLE_RANGES

  * 1 x SELECT_SUM_RANGES

  * 1 x SELECT_ORDER_RANGES

  * 1 x SELECT_DISTINCT_RANGES

  * 1 x UPDATE_KEY

  * 1 x UPDATE_NO_KEY

  * 1 x UPDATE_KEY

  * 1 x INSERT

  * 1 x DELETE

4. UPDATE_KEY: 包含多个更新索引的SQL查询。

测试方法
  • InnoDB缓冲池大到足以容纳整个数据集。

  • Sysbench数据由8个表组成,每个表有1000万行,总共有8000万行。总数据大小为20GB。

  • 对于每个场景,运行一个预热,然后是5分钟的sysbench负载,重复3次以计算平均事务数/秒。

  • 测试使用64、128、256、512和1024个客户端连接/线程运行。

  • 硬件包括带有Intel E5-2699 v4 CPU的2插槽服务器(44核@ 2.20 GHz, 88个CPU线程)。

  • 操作系统:Oracle Linux 7.9

配置细节
  • 数据集

    • Sysbench load. 8 张表 每个有1000万行。总计8000万行

    • 数据大小20GB。数据完全缓存在缓冲池中。

  • 硬件

    • Oracle Linux server release 7.9

    • Kernel 5.4.17-2012.201.3.el7uek,x86_64

    • 内存515.91GB

  • MySQL配置
    [mysqld]
    ## Server ##
    back_log=0
    disable-log-bin
    max_connections=1200
    max_prepared_stmt_count=100000
    log_error_verbosity=3
    thread_cache_size=1200


    ## Innodb ##
    innodb_buffer_pool_instances=16
    innodb_buffer_pool_size=128G
    innodb-change-buffering=none
    innodb_io_capacity_max=12000
    innodb_io_capacity=10000
    innodb_log_files_in_group=16
    innodb_log_file_size=1G
    innodb_numa_interleave=ON
    innodb_page_cleaners=16
    innodb_read_io_threads=16
    innodb_write_io_threads=4
    innodb_undo_log_truncate=OFF
    range_alloc_block_size=16384

    测试结果

    在所有测试的线程配置中,企业版的平均提升为24%。

    在所有测试的线程配置中,企业版的平均提升为34%。

    在所有测试的线程配置中,企业版的平均提升为26%。

    在所有测试的线程配置中,企业版的平均提升为21%。

    因此

    通过基准测试的结果,MySQL企业版对比社区版在性能方面有显著的提升,这样的企业版是不是你心中理想的MySQL?


    如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发朋友圈,



    近期更新的文章:
    中日战前寄语:纵有疾风起,不能轻言弃!
    金融行业自动化运维安全性与合规性难点的讨论
    Redis的适用场景
    最近碰到的一些问题
    InnoDB启动配置的细致讲解

    热文鉴赏:
    中国队“自己的”世界杯
    你不知道的C罗-Siu庆祝动作
    架构设计的15个关键概念
    大阪环球影城避坑指南和功略
    推荐一篇Oracle RAC Cache Fusion的经典论文
    "红警"游戏开源代码带给我们的震撼

    文章分类和索引:
    公众号1500篇文章分类和索引

    文章转载自bisal的个人杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论