我有一个带有tomcat/mysql的j2ee web应用程序,我正在家里开发,我把它部署在一个家庭服务器上。我花了一些时间升级它,我对DB模式做了一些修改。
我重新编写了Java/JSP/JavaScript的一部分,然后将数据库转储到本地桌面上的文本文件中,复制到服务器,然后通过
source
命令,使其成为生产数据库。
当我这样做的时候,我立刻注意到插入/更新非常缓慢。在以前的数据库版本中,我从来没有遇到过这样的问题。
我尝试完全删除数据库并重新创建,再次使用mysql
来源
命令。写得还是很慢。
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转储文件没有这个问题。
所有表都使用Simple自动增量值来主键,而DB很小,大多数表只有大约1000行,而我现在是唯一的用户。
此外,数据库的测试版本具有相同的模式,运行时没有问题。
有什么想法吗?
谢谢!