【发布时间】: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