我必须对大约 160K 条记录进行查找,其中数据的形式是 id,我们需要获取给定值在 range1 和 range2 范围内的行,到目前为止,它是我们使用的一个 between 查询.
我昨天开始使用 memcache,它会找出针对给定值的特定行是否在 memcache 中,如果不是,则通过从数据库中获取它来将其放入 memcache 中。
我不确定 memcache 本身的查找顺序是 o(1) 还是 o(n),我知道 dbsearch 最多可以让我 o(log n) ,我正在考虑在中间保留另一层其他一些内存对象的[我现在想不出来,但我当然不想使用会话将表保留在内存中],而是从这个内存对象中获取数据,并且如果在其中找不到,则转到数据库。
PS - 我的数据库表几乎没有经过任何更改。
所以我想的顺序是如果找不到则在内存缓存中查找(在内存中查找 - 对数组进行二进制搜索),如果在数据库中找不到查找,则添加到内存缓存,添加到内存并添加到内存缓存.
我在想正确的方向吗