storig DB结果本地/缓存用于将来的操作

时间:2011-03-23 04:01:33

标签: php mysql caching

我只想访问数据库一次,并将结果存储在本地内存/缓存中以备将来操作。 对于Eg:我想先执行此查询;

$query = "select * from songs";

并将结果存储在本地,以便我以后可以使用它来执行这样的查询;

   $query1 = "select * from songs order by song_id asc";
   $query2 = "select song_name from songs where song_id='5'";

我正在使用PHP访问数据库。

1 个答案:

答案 0 :(得分:1)

以下是一些想法:

  1. 使用“本地”进程内SQL数据库,例如SQLite。 SQLite 非常快(在许多[平凡]案例中它比MySQL,PostgreSQL或Firebird执行得更快)并且支持SQL-92语法的一个很好的子集,但填充“数据 - 有额外的开销设置“(SQLite DB)并构建任何索引等。这种方法允许很大的灵活性并允许持久性。

  2. 使用memcached或类似内容。但是,memcached 将不适合所设想的模型。在memcached运行的模型中,这样的方法可以很好地工作。

  3. 可以“只”存储对象/行,然后在内存数组中手动​​执行查询(不使用SQL语法)。

  4. 可能有一些透明缓存系统,例如the MTCache research project。我对这些没有经验,也不知道是否有一个可行的解决方案[对于PHP]。

  5. 所有上述建议在很大程度上取决于确切的上下文/情况,并且可能会实际干扰性能和/或“正确结果”。请记住,MySQL实际上表现良好一些内部工作,以确保数据页面/缓存“热”,并可以执行其认为合适的其他缓存;除了“离线”操作或性能分析表明需要满足functional requirements的情况外,除了“离线”操作以外,我无法推荐上述任何指标。

    快乐的编码。