Меню Содержимое
Главная arrow Новшества arrow ArtioSEF performance hack - ускоряем CMS Joomla

Авторизация





Забыли пароль?
Ещё не зарегистрированы? Регистрация
Rambler's Top100
Rambler's Top100

ArtioSEF performance hack - ускоряем CMS Joomla

Автор Alex Brunov   
09.12.2007 г.
Еще одно улучшение для ускорения работы сайта на SEO Joomla и снижение нагрузки на базу данных сервера, которое вошло в данную сборку и ускоряет работу CMS Joomlа при включении SEO в глобальной конфигурации.
 
На чем основана идея:
Когда мы включаем ЧПУ преобразование ссылок, то ARTIO JoomSef при каждой загрузке любой страницы запрашивает из базы данных информацию о всех ссылках – меню форума, компонентов и других, которые находятся на этой странице – это создает сильную нагрузку на базу данных. Одно из решений удачных – это кэширование успешных запросов, чтобы не делать лишних обращений к базе.
 
Как сделать это изменение:
 
- сделать бэкап файла includes/database.php
- открыть файл includes/database.php
- сделать в нем следующие изменения в функции loadResult ():
 
найдите -
function loadResult() {
и удалите ее и все между
 
/**
* This method loads the first field of the first row returned by the query.
*
* @return The value returned in the query or null if the query failed.
*/
 
И
 
/**
* Load an array of single field results into an array
*/
 
затем вставьте модифицированную функцию loadResult вместо удаленного:
 
function loadResult() {

		$ret = null;
		
		/*
		* mod by teachmejoomla
		*/
		if(stripos($this->_sql,'mos_redirect')&&stripos($this->_sql,'select')!==false)
		{
		$cachename = md5($this->_sql);
		
		global $mosConfig_absolute_path;
		global $mosConfig_cachepath, $mosConfig_cachetime;
		require_once( $mosConfig_absolute_path . '/includes/Cache/Lite/Function.php' );
		//echo $this->_sql;  
		
		$lifetime=$mosConfig_cachetime;
		
		$cache = new Cache_Lite( 
		array("cacheDir" => $mosConfig_cachepath, 
  		"lifeTime" =>  $lifetime) );


			if ($cachedquery = $cache->get($cachename)) 
			{
			//echo "CACHE HIT: $this->_sql";
			$row = unserialize($cachedquery);
			}

			else
			{
			//echo "CACHE MISS: $this->_sql";
			
			/* 
			* moved
			*/
			if (!($cur = $this->query())) {
			$cache->delete();
			
			return null;
			}
			/*
			*
			*/
			
			$row = mysql_fetch_row( $cur ); 
			if ($row) $cache->save(serialize($row),$cachename);
			mysql_free_result( $cur );
			//print_r($this->_cursor);
			}
		$ret = $row[0];
		}
		else
		/*
		*
		*/
		{
		
		if (!($cur = $this->query())) {
			return null;
			}	
		
		if ($row = mysql_fetch_row( $cur )) {
			$ret = $row[0];
		}
		mysql_free_result( $cur );
		
		}
		
		return $ret;
	}

Все, загрузите этот измененный файл обратно на сервер.

Источник: http://www.teachmejoomla.net/joomla/mambo-tutorials-and-howtos/core-hacks/artiosef-performance-hack.html
Последнее обновление ( 09.12.2007 г. )
 
Недвижимость за рубежом: приобретение за рубежом недвижимости, инвестиции в зарубежную недвижимость