数据库有300M左右,纯读取。想拷贝一个类似副本到内存(或者就全部载入内存),网站直接读取内存中的数据库。
如何实现?

解决方案 »

  1.   

    查阅MYSQL官方免费手册中的 MEMORY (HEAP)存储引擎。
      

  2.   


    你的存储引擎用的是myisam,还是innodb。mysql也是会把数据缓存到内存中的,如果数据直接在内存,就直接从内存读取。
      

  3.   


    如果这些数据都是静态的,或者变化很少的,只有读取,可以考虑用memory引擎。类似如下: create table memory_tb engine=memory select * from a;这样就创建了内存表,但是这个表示在内存,所以,一旦服务器重启了,或者掉电了,内存中的数据就没有了,表就成空的了,这个时候需要你再次把 原来表的数据 插入到 这个内存表里。
      

  4.   


    不可以自动复制么?比如重启服务器之后,自动拷贝数据库到内存。数据量太大,如果每次重启手动插入,太麻烦了。可以在服务器启动时自动加载,在my.cnf 中加入参数,init_file参数,里面可以写一个文件,这个文件就是当启动时,mysql会执行的代码,你可以在文件里加上:insert into xxx
    select * from tb