微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mariadb性能问题介于10.0和10.4之间

如何解决Mariadb性能问题介于10.0和10.4之间

我们当前在Ubuntu 16.04上运行MariaDB 10.0,并希望在18.04上升级到MariaDB 10.4,但遇到了一个奇怪的问题。在对10.4进行10.0的原始安装测试时,在相同硬件上,10.4的安装性能要慢50%。我们正在GCP 2核心7GB VM上运行它们。

我已经在两个实例上设置了一个测试表,如下所示:

create table if not exists testinsert_aria
(
        id int primary key,description varchar(255),colorder int
) engine=aria;

并设置如下所示的测试脚本:

#!/bin/bash
START_DATE=`date`
END_DATE=`date`
START_ID=0
IDX=0

while [ $start_ID -lt 10001 ]
do
        START_ID=$[$start_ID+1]
        sql_CMD="echo \"insert into testinsert_aria values($start_ID,'this is a test',1)\" | MysqL -uroot testdb"
        eval $sql_CMD
done
END_DATE=`date`
echo "$(($(date -d "$END_DATE" '+%s') - $(date -d "$start_DATE" '+%s')))"

在10.0实例上,此过程耗时约48秒,而在10.4实例上,该过程耗时约70秒。我正在使用htop,iostat和ioping监视系统,但看不到cpu或磁盘有任何压力。有时候,一个内核会达到100%,但大多数情况下,内核会保持在45%左右。

我对sql Server的了解比对Mariadb的了解要多得多,但是aria引擎似乎没有很多可用的调整选项。我看到与innodb引擎相同的问题。我还在Ubuntu 16.04上的Mariadb 10.4上对其进行了测试,并看到了相同的结果,因此它似乎与操作系统无关。我正在运行一个单独的数据SSD数据磁盘,该数据磁盘已使用XFS设置(也尝试了EXT4,但没有重大区别)。我玩过IO调度程序,但没有发现任何差异。我对所发生的事情有些茫然。我可以想象,如果在10.0和10.4之间有如此大的性能差异,那会有很多线程,但是我什么也找不到。我也已经在存储过程中表达了测试以删除客户端,结果仍然相同。通过slow_log查看时,在10.4实例上的平均查询时间大约长3倍,而query_response_time显示相同。任何帮助将不胜感激。

解决方法

糟糕的基准。除非您真的从shell脚本运行mysql。没有区别

  • 操作系统更改
  • 外壳更改
  • 启动mysql
  • 在mysql中授予访问权限
  • 单行INSERT

通过连接一次,您将获得显着的加速。 通过对插入的行进行批处理,可以大大提高另一个的速度。 (在另一种情况下,我看过10倍。)

我不知道Engine = Aria是否比标准InnoDB更差,但这可能是另一回事。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?