更新模式并通过源进行加载后,MYSQL插入/更新速度变慢

时间:2018-06-25 13:06:08

标签: mysql

我有一个运行于tomcat / mysql的j2ee Web应用程序,我正在家里进行开发,已将其部署在家庭服务器上。我花了一些时间升级它,并对数据库架构进行了一些更改。

我重新编写了它的java / jsp / javascript端,然后将数据库转储到本地桌面上的文本文件中,将其复制到服务器上,然后通过source加载该文件。命令,使其成为生产数据库。

当我这样做时,我立即注意到插入/更新非常慢。在以前的数据库版本中,我从未遇到过任何问题。

我尝试再次使用mysql source命令完全删除数据库并重新创建。写仍然很慢。

数据库的生产和测试版本都是在ubuntu上运行的mysql。

test :  5.7.22-0ubuntu18.04.1 
server: 5.7.20-0ubuntu0.16.04.1 

我不知道16.04.1是否有所作为,但是以前版本的数据库没有问题。

我已经做了一些搜索,大多数结果都与InnoDB设置有关。但是由于以前的版本没有问题,所以我想知道这是显而易见的事情,例如文本文件导入了我没有看到的设置。

mysqldump文件中的所有表都在顶部:

LOCK TABLES `address` WRITE;
/*!40000 ALTER TABLE `address` DISABLE KEYS */;

不确定这是否是问题的一部分?我对表锁的了解有限,这与用户及其当前会话有关吗?但是同样,以前的版本使用的是mysql转储文件,而没有这个问题。

所有表都使用smallint自动增量值作为主键,并且db很小,大多数表只有大约1000行,而我目前是唯一的用户。

此外,具有相同架构的数据库测试版本可以正常运行。

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

我能够通过在/etc/mysql/mysql.conf.d/mysqsld.cnf中添加var来解决:

innodb_flush_log_at_trx_commit=2

发现了几个问题here,重新设置了innodb设置,并找到了here来检查数据库设置