1千万左右的数据量,数据有查询次数的限制,比如每条记录每天只能查询2次,每周只能查询5次,每月只能查询10次,现在要求在查询的时候能够很快的反馈是否到达查询次数上限,如果没有记录,则增加此记录的查询次数,每天的查询量非常大,可能达到千万级。
   目前有3个方案去解决这个问题,如下:

方案1. 采用自定义缓存,直接把1千万数据,根据数据标识作为key放到hashmap里面,每次查询的时候就直接根据key去找到相应的记录,并更新对应的查询次数,并定时把记录写到文件里面,防止数据全部丢失,此方案优点是快,缺点是需要太多的内存,如果缓存里面没有这条记录,需要把这条记录也加进去,不知道会不会太慢。

方案2. 采用关系数据库,比如oracle,把这些记录都放到oracle的表里面,每次查询的时候到oracle里面去查,但是这么频繁的操作和这么大的数据量,查询的速度可能会大打折扣,符合不了要求。

方案3. 采用内存数据库,比如fastdb,h2之类的内存数据库,这个不是很熟悉,也没有经验,只是大概的想到可以这么做。

现在倾向于使用方案1,请探讨一下,方案1是否可行?方案2,3是否存在可优化的地方?

版权声明:本文为foreverking原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/foreverking/articles/2055285.html