сделать что-то вроде этого
<?php
$db = mysql_connect("localhost","foo_dbo","pass") or die("Database error");
mysql_select_db("foo_db", $db);
$sql = "select * from posts;";
$file = sprintf("%s.dat", md5($sql));
$result = mysql_query($sql);
if (!$result) die("Invalid query: " . mysql_error());
while ($row = mysql_fetch_assoc($result)) $data[]=$row;
mysql_free_result($result);
mysql_close($db);
if($fp=fopen($file,"w")){
fwrite($fp,serialize($data));
fclose($fp);
}
?>
затем для чтения обратно в массив сделайте что-то вроде
unserialize(file_get_contents($file))
очевидно, вы бы использовали memcache для хранения сериализованных данных, а не файловой системы
надеюсь, это поможет