![]() |
最近时间少了, 隔了这么久, 才做了一个网站 |
还是之前的那个问题,原帖地址是:http://www.guanggoo.com/t/13711
升级服务器分为策略服务器(tomcat)和下载服务器(jboss),策略服务器负责配置需要升级的产品的升级地址,下载的策略,和统计相关升级信息。符合配置的下载策略会重定向到真实的下载地址(下载服务器处理)上,产品会自动下载升级文件。
现在又有个问题,要实现MAC地址精确升级功能,根据在线的产品上报的MAC地址和配置在服务器上的MAC地址就行对比,完全符合的就下载。问题是MAC地址有几万到十几万条,现在的做法是MAC地址都会保存在mysql数据库的表中,然后每次上报一个就在数据库中对比(jdbc-sql脚本),发现速度很慢。有什么优化的方法么?存在hashmap中?还是有什么开源的缓存方案专门可以解决此类问题?
谢谢大家!
几十万数据如果单表查询,加索引应该就不会慢.
多表查询,通过查看执行计划,配合索引来优化.
join多了可以将join的结果生成物理表(类似物化视图)采用多字段联合索引来解决(单表当然也可以)
你如果只是数据多但是访问量不算大的,没必要弄缓存,尽量还是保持架构单纯.
@zhouzhe8013 没加索引。。
@wangpugod2003 那直接加索引试试.
@zhouzhe8013 是两个表的级联查询:
select sb.codeid,sb.regionname,sb.strategytype,sb.codetype,sb.phonecode,sb.startcode,sb.endcode,sb.upgradeflag,sb.remark from iptv_ipandphonecode sb, iptv_strategyrelation sb2 where sb.codeid=sb2.codeid and sb.strategytype=3 and sb2.strategyid=?
@wangpugod2003 看一下执行计划吧,然后把用到的这几个字段先分别加索引.看看效率如何.
过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号