在速度优化专题里面(http://bbs.justep.com/forum.php? ... ight=usecache):
提到了数据表缓存问题。
因为烟草公司基本信息表(comp_base_info)基本上录入之后不怎么变动。所以我把该表的‘usecache’选中,cachekey没有填写。数据集的SQL里面有个限制:comp_base_info.片区编码 like 业务参数 or comp_base_info.片区编码 is null。
结果,不论业务参数为何值,功能运行时候只出现comp_base_info.片区编码 is null的记录,而comp_base_info.片区编码 like 业务参数的记录都不出来。
将该表的‘usecache’选中勾去掉,功能和记录都很正常,即comp_base_info.片区编码 like 业务参数有效果。
把表的‘usecache’选中,cachekey填写该表主键,一样只出现片区编码为null的记录。
---------------------------------------------------------------------------------
下面是该帖子的原话
可以把访问过的表数据缓存在本地,下一次访问这批数据时,就可以不与服务器交互,但是,服务器上的数据可能被其他的客户端更新,所以在服务端数据被更新后,缓存中的数据也要更新,如果不设置CacheKey,则客户端会作废缓存中的全部数据,从服务顺重新取数据,又造成较大的网络流量,这时如果利用Cachekey,服务端就能够自动把客户端缓存过的数据的CacheKey记入日志文件,当感知到客户端数据的改动时,可以根据CacheKey所定义的关键字,只把改动过的数据发往客户端,刷新客户端的缓存,提高数据访问的效率。
---------------------------------
现在是:我服务器端望烟草公司基本信息表里面添加多条记录。客户端更本感觉不到我服务器上数据刷新了;除非我把其中某些记录的comp_base_info.片区编码人为的设置为null;客户端才可以感知这些片区编码为空的记录,从这个方面看,客户端又能感知服务器端的变化。
真是搞不明白?要命的是这是个全局性的问题,我一下子把所有类似的表的usecache都选中了,结果只要有sql限制条件(含业务参数)都出问题。请尽快给于答复或者电话联系。