我正在研究使用MySQL数据库作为数据存储层的Java应用程序。数据库中的配置表很少,但每个表都有数千个记录/行。当应用程序启动时,这些所有配置都将缓存/加载到相应的数据结构/ bean(JAVA POJO's)的内存中。MySQL检查表是否有一些记录已更改
一切都很好,除了每次应用程序启动缓存发生,这通常需要15-20分钟,因为要缓存的数据是巨大的,也有一些列有XML字符串,它被解析,然后存储在bean 。
那么最重要的是什么?
- 为什么我们应该在连续启动之间没有数据更改时缓存?我可以将所有的bean封装在一个通用的Config bean中并对其进行序列化。当我找出没有数据被改变时加载这个序列化的对象 - 当然,加载序列化对象的速度远快于数据库命中加豆的数量。
那么有什么办法可以解决这个问题吗? 当然在数据库级别。我会在应用程序启动时进行查询 - 自上次启动以来数据库表中是否有任何更改?如果是,则执行旧的无聊缓存过程并存储一些唯一标识符并序列化,或者如果最后一个标识符和当前标识符相同,则只加载序列化对象。这个独特的标识符当然是持久的。
怎么样MySQL CHECKSUM TABLE。我试着改变一行的列数据,并修改了校验和。 –