【发布时间】:2010-09-11 18:43:12
【问题描述】:
有没有办法将mysql查询的结果手动缓存到txt文件?
例如:
$a=1;
$b=9;
$c=0;
$cache_filename = 'cached_results/'.md5("$a,$b,$c").'.txt';
if(!file_exists($cache_filename)){
$result = mysql_query("SELECT * FROM abc,def WHERE a=$a AND b=$b AND c=$c");
while($row = mysql_fetch_array($result)){
echo $row['name'];
}
// Write results on $row to the txt file for re-use
}else{
// Load results just like $row = mysql_fetch_array($result); from the txt file
}
原始查询包含更多使用多个表的 WHERE 和连接。 那么,这可能吗?如果有,请解释一下。
谢谢你, pnm123
【问题讨论】:
-
除非您的实际查询非常复杂并且索引不是很好,否则我认为您的缓存会更慢。请记住,在最坏的情况下,mySQL 也会从文件系统中获取结果。
-
我已索引所有必填字段。所以我认为通过缓存查询结果会更快,因为 MySQL 只需要运行一次,因为查询没有变化。
-
Mysql 有自己的查询缓存。处理查询是 Mysql 的工作。而过早的优化是万恶之源。
-
但有时我们可以比现在的方式做得更好。