November 1st, 2009

стена, я, в профиль

Кэширование запроса в одном запросе страницы

Если у нас есть некий ORM где генерятся миллион однотипных запросов на одно и то же, то можно оптимизироать это всё в одной функции.

<?php
function &mssql_inner_query($sql)
{
	static $results = array();
	
	$key			= crc32 ($sql);
	
	if (isset($results[$key])) {
		return $results[$key];
	}
	
	$query		= mssql_query($sql);
	$num_rows	= mssql_num_rows($query);
	$result		= array();
	
	if ($num_rows) {
		while ($row = mssql_fetch_assoc($query)) {
			$result[] = $row;
		}
	}
	
	$results[$key] =& $result;
	
	return $result;
}
?>