面试中问道,如果把某个数据表中的数据存到内存中,以便下次查询,怎么存放?

解决方案 »

  1.   

    动不动就加个面试字眼. 本身这个问题就矛盾, 既然你说要放到内存中就没有什么方法了,直接放到hashmap中就可以. 如果你真想实现优化,不是只把数据放到内存上就可以,你还要实现在内存中实现索引的算法.  我的意思是说,如果只把数据放在内存中,没有实现查询的算法,还不如直接用sql语句查询数据库快(使用索引列查询)
      

  2.   

    缓存机制啊,使用单例模式放到Map中
      

  3.   

    hashmap 面试考这题目的话,LZ另寻高就较稳妥。
      

  4.   

    map list array 具体看情况
      

  5.   

    session.setAttribute("alias", Object);
      

  6.   

    是不是这样啊?private int max=500;
    private int min=20;
    private int current=0;//当前记录位置
    pirvate list<E> recordList;public E next(){
      current_record++;
      if(null==recordList){
         recordList=获取n条记录;
      } else(current%max<min){
         启动新线程获取n条记录;
      }
      return recordList.get(current%max);
    }//end of next
    }
      

  7.   

    其实考题的意思也就是用什么存法效率最高 便于查询 其实hash是个最好的选择了
      

  8.   

    hashmap是如何存放的呢, 它是KEY,VALUE对,那存于内存的KEY,一个KEY对应一条数据索引,然后VALUE对应数据?不是很明白,
    看标题好像不太对,一W条数据,存于内存中?内存够不。
      

  9.   


    怎么会没有意义呢?1万条数据很少的吧。如果缓存1万条数据都没有,那也就不需要什么缓存了。
    这样看缓存服务器上什么样的,如果是单台,只需要实现LRU就可以。当然,也可能需要其它的算法。比如FIFO或者想硬盘那样的分组缓存。
    如果是多台服务器,还要实现分布式缓存算法。比如可以通过简单的ip,或者垂直划分。
      

  10.   

    没想过什么缓存要么jpa,要么hibernate