[翻译文]MySQL在SSD中使用更小的innodb_page_size有助提高性能

在这篇文章中,我们将讲述在SSD设备下,一个更小的innodb_page_size是怎么提高MySQL性能的。

在我之前写的一篇文章中,我对比和测试了不同的三星SSD设备。大部分SSD使用4KB作为内部页的大小,而innodb存储引擎的默认页大小是16KB。我想知道不同的innodb_page_size是否会影响数据库的性能。

幸运的是,MySQL 5.7新增了一个innodb_page_size配置项,从而让你可以自定义innodb的页大小,然而这个配置项目前使用起来还不是很方便。你不能改变一个已有的数据库的页大小,只能通过创建一个全新的数据库,在上面配置不同的innodb_page_size,然后再导入旧数据库的数据。这种不方便性会严重阻碍在线上系统的使用。但是你可以为单个数据表或索引设置innodb_page_size,你可以通过一个简单的语句ALTER TABLE foo page_size=4k来设置它。

无论如何,这都不会影响我们在测试环境中使用这个配置项。我们使用之前一篇文章里的相同的测试条件来进行测试,然后看看在innodb_page_size=4k的页大小下,测试结果会发生什么变化。

在这里插入图片描述

译者注:图中的X轴是Buffer Pool的内存大小,单位GB;Y轴是每分钟的新事务数量(New Order Transactions Per Minute)(NOTPM),值越大越好。

从图中可以看出,在Buffer Pool比较小的情况下,PM1725设备的性能优于SAM863,当内存逐渐增大后,两者的性能几乎相等。

那么,innodb_page_size=4k16k两者的性能对比呢?

这是两者对比的测试结果图:
在这里插入图片描述
表格结果:
在这里插入图片描述
有趣的是,使用4k的页大小后,数据库的性能提升了70%,但仅限于PM1725、SAM863两块SSD。而低端的SAM850,在内存逐渐增大后,表现反而变糟糕。

我认为70%的性能提升太重要了,不容忽视,即使配置innodb_page_size需要额外的工作。
我认为值得评估使用不同的innodb_page_size设置是否有助于提升你的SSD数据库性能。

最后希望MySQL 8.0可以让我们更方便的配置不同的innodb页大小。

原文链接:https://www.percona.com/blog/2016/08/10/small-innodb_page_size-performance-boost-ssd/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值