我只想访问数据库一次,并将结果存储在本地内存/缓存中以备将来操作。 对于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访问数据库。
答案 0 :(得分:1)
以下是一些想法:
使用“本地”进程内SQL数据库,例如SQLite。 SQLite 非常快(在许多[平凡]案例中它比MySQL,PostgreSQL或Firebird执行得更快)并且支持SQL-92语法的一个很好的子集,但填充“数据 - 有额外的开销设置“(SQLite DB)并构建任何索引等。这种方法允许很大的灵活性并允许持久性。
使用memcached或类似内容。但是,memcached 将不适合所设想的模型。在memcached运行的模型中,这样的方法可以很好地工作。
可以“只”存储对象/行,然后在内存数组中手动执行查询(不使用SQL语法)。
可能有一些透明缓存系统,例如the MTCache research project。我对这些没有经验,也不知道是否有一个可行的解决方案[对于PHP]。
所有上述建议在很大程度上取决于确切的上下文/情况,并且可能会实际干扰性能和/或“正确结果”。请记住,MySQL实际上表现良好一些内部工作,以确保数据页面/缓存“热”,并可以执行其认为合适的其他缓存;除了“离线”操作或性能分析表明需要满足functional requirements的情况外,除了“离线”操作以外,我无法推荐上述任何指标。
快乐的编码。