MySQL 只显示一些由 Hibernate 插入的数据
MySQL only shows some data that is inserted by Hibernate
我有一个 Java 应用程序,它通过 Hibernate 将数据从一个非常大的文本文件加载到 MySQL 中。到目前为止,应用程序似乎工作正常 - 数据已加载。
然后我想在插入数据时监视应用程序的进度,所以我编写了一个小的命令行实用程序,主要用于查询 select count(*) from my_table;
.
这个查询第一次是 运行(来自 CLI 或 MySQL Workbench),我得到了正确的记录数,正如预期的那样。此查询的所有后续执行 return 完全相同的数字! 即使数据加载应用程序仍然 运行ning!
如果我停止并启动 MySQL 进程,查询记录数会显示 正确的 数字,因为数据加载应用程序会报告它。
我以前从未见过这样的事情。看起来这里出现了一些奇怪的 MySQL 缓存问题,我担心它可能会给其他可能想要访问该数据库的非 Hibernate 应用程序带来问题。
有谁知道如何调整 MySQL(或者可能是 Hibernate)以便 MySQL 总是 显示正在添加到数据库中的内容?
技术细节:
- MySQL:5.7.26,在 docker 容器中,使用 InnoDB 存储
- 休眠版本:5.4.2.Final
- Spring版本:5.1.7.RELEASE
调用 FLUSH TABLES
似乎解决了这个问题,在刷新表后,我可以看到应用程序添加了多少条记录。
我有一个 Java 应用程序,它通过 Hibernate 将数据从一个非常大的文本文件加载到 MySQL 中。到目前为止,应用程序似乎工作正常 - 数据已加载。
然后我想在插入数据时监视应用程序的进度,所以我编写了一个小的命令行实用程序,主要用于查询 select count(*) from my_table;
.
这个查询第一次是 运行(来自 CLI 或 MySQL Workbench),我得到了正确的记录数,正如预期的那样。此查询的所有后续执行 return 完全相同的数字! 即使数据加载应用程序仍然 运行ning!
如果我停止并启动 MySQL 进程,查询记录数会显示 正确的 数字,因为数据加载应用程序会报告它。
我以前从未见过这样的事情。看起来这里出现了一些奇怪的 MySQL 缓存问题,我担心它可能会给其他可能想要访问该数据库的非 Hibernate 应用程序带来问题。
有谁知道如何调整 MySQL(或者可能是 Hibernate)以便 MySQL 总是 显示正在添加到数据库中的内容?
技术细节:
- MySQL:5.7.26,在 docker 容器中,使用 InnoDB 存储
- 休眠版本:5.4.2.Final
- Spring版本:5.1.7.RELEASE
调用 FLUSH TABLES
似乎解决了这个问题,在刷新表后,我可以看到应用程序添加了多少条记录。