将mysql db更改为mariadb后的执行时间问题

ohtdti5x  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(440)

我把mysql的5.6改成mariadb的10.1,总记录数在500万以上。使用php脚本导出带有join查询的数据。现在,对于相同的php代码,导出需要时间延迟。

Before, MYSQL DB : 20 to 30 second 
After, MariaDB DB : 50 to 60 second

请建议我,如何加快执行时间。

vddsk6oq

vddsk6oq1#

问题是要将军来回答。您应该提供一些用于导出的示例代码。
为了加快执行时间,可以调整配置文件。
mysql和mariadb设置之间有一些差异。看看这里https://mariadb.com/kb/en/library/system-variable-differences-between-mariadb-101-and-mysql-56/
你应该知道你在用什么myisam或innodb。
最显著的区别是,mariadb默认包括aria存储引擎(导致额外的内存分配)、galera集群、使用percona的xtradb而不是oracle的innodb,并且具有不同的线程池实现。因此,mariadb 10.1的默认实现将比mysql 5.6使用更多的内存。mariadb 10.1和mysql 5.6也有不同的gtid实现。
mariadb的额外内存使用可以通过以下经验法则来处理:
如果您不使用myisam,也不打算使用aria:
将key\u buffer\u size设置为非常低的值(16k),因为它没有被使用。
将aria\u pagecache\u buffer\u size设置为处理内存中不适合的内部tmp表所需的大小。
正常情况下,这是您之前设置的密钥缓冲区大小(至少1米)。
如果您正在使用myisam而不打算使用aria:
将aria\u pagecache\u buffer\u size设置为处理内存中不适合的内部tmp表所需的大小。
如果您计划使用aria,那么应该将aria\u pagecache\u buffer\u size设置为适合大部分普通数据+溢出临时表的大小。
以下是MySQL5.6中的默认值https://dev.mysql.com/doc/refman/5.6/en/server-default-changes.html

相关问题