我有一个Java应用程序,可通过Hibernate将非常大的文本文件中的数据加载到MySQL中。到目前为止,该应用程序似乎可以正常运行-已加载数据。
然后,我想在应用程序插入数据时监视其进度,因此我编写了一个小的命令行实用程序,基本上可以查询select count(*) from my_table;
。
第一次运行此查询(从CLI或MySQL Workbench)时,我得到了正确的记录数,符合预期。此查询的所有后续执行返回完全相同的数字!即使数据加载应用程序仍在运行!
如果我停止并启动MySQL进程,则查询记录数将显示正确编号,因为数据加载应用程序会报告该编号。
我以前从未见过这样的东西。看来这里发生了一些奇怪的MySQL缓存问题,我担心这可能会对其他可能要访问此数据库的非Hibernate应用程序造成问题。
有人知道如何调整MySQL(或可能是Hibernate),以便MySQL 始终显示正在添加到数据库中的内容吗?
技术细节:
答案 0 :(得分:0)
调用 FLUSH TABLES
似乎可以解决这个问题,因为在我刷新表之后,我可以看到应用程序添加了多少记录。