【问题标题】:MYSQL insert/update slow after updating schema and loading via source更新模式并通过源加载后,MYSQL 插入/更新速度很慢
【发布时间】:2018-12-04 01:44:44
【问题描述】:

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

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

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

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

db的生产和测试版本都是在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 行,我目前是唯一的用户。

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

有什么想法吗? 谢谢!

【问题讨论】:

    标签: mysql


    【解决方案1】:

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

    innodb_flush_log_at_trx_commit=2
    

    发现了几个问题here,re innodb 设置和here 用于检查数据库设置

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      • 2017-01-13
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多