关于元数据(表结构、索引等)缓存
最后更新:2024-09-10 05:30:00
|
状态:未完成
由于元数据的查询需要许多SQL,所以默认情况下会生成缓存。
当通过service.ddl()修改数据库时,缓存会刷新,但通过其他方式修改数据库时,缓存无法接收通知,所以会导致缓存与数据库不一致的情况
为避免以上情况,可以
1.数据库修改都通过service.ddl()执行
2.数据库修改后调用系统接口,接口内调用CacheProxy.clear()刷新缓存
3.设置缓存有效范围和刷新时间
默认缓存对整个应用有效、过期时间24小时,可以通过ConfigTable.METADATA_CACHE_SECOND设置缓存时间(单位:秒)
ConfigTable.METADATA_CACHE_SCOPE设置有效范围,0:不缓存 1:当前线程 9:整个应用(默认)
当通过service.ddl()修改数据库时,缓存会刷新,但通过其他方式修改数据库时,缓存无法接收通知,所以会导致缓存与数据库不一致的情况
为避免以上情况,可以
1.数据库修改都通过service.ddl()执行
2.数据库修改后调用系统接口,接口内调用CacheProxy.clear()刷新缓存
3.设置缓存有效范围和刷新时间
默认缓存对整个应用有效、过期时间24小时,可以通过ConfigTable.METADATA_CACHE_SECOND设置缓存时间(单位:秒)
ConfigTable.METADATA_CACHE_SCOPE设置有效范围,0:不缓存 1:当前线程 9:整个应用(默认)