关于元数据缓存

最后更新:2024-09-11 05:30:01 | 状态:未完成
metadata作为AnylineService的内部类主要用来查询数据库结构,如表,表,主键,索引等
service.metadata().table(String)
ServiceProxy.metadata.table(String);
因为元数据查询量很大,所以会有缓存。
在系统内通过AnylineService.ddl()修改的会自动刷新缓存
如果在系统外修改了表结构等元数据信息,这时缓存不会自动刷新。

可以修改缓存时间或缓存范围或主动刷新缓存
CacheProxy.clear()清空元数据缓存

ConfigTable.METADATA_CACHE_SCOPE= 9;   // 0:不缓存 1:当前线程 9:整个应用
ConfigTable.METADATA_CACHE_SECOND = 3600*24 ; // 表结构缓存时间(没有设置缓存key的情况下生效)(-1:表示永不失效)

如果表比较多,尽量让系统对外提供一个接口,接口内调用CacheProxy.clear清空缓存

为什么不清空指定表相关的缓存,是因为缓存之间错综复杂很难根据表名筛选



首页 最近更新 搜索 提交 回复