Php и MySQL кэширование - PullRequest
       21

Php и MySQL кэширование

2 голосов
/ 15 декабря 2009

В настоящее время я работаю над проектом php / mysql с системой AbleDating, мой клиент беспокоится о нагрузке на сервер, поэтому он попросил меня использовать "кэширование" настолько, насколько я мог, он попросил меня кэшировать запрос mysql и некоторые HTML зоны ...

Возможно ли кэшировать только некоторые html-зоны с помощью php? Если да, как я могу это сделать?

Для кэширования mysql это просто опция проверки или я должен что-то изменить в кодировке?

Спасибо!

Ответы [ 3 ]

1 голос
/ 15 декабря 2009

Конечно, кэширование очень важно. Я использую себя php chacher под названием Minicache посмотреть http://code.google.com/p/minicache/

1 голос
/ 15 декабря 2009

memcached - отличный способ кешировать что-либо (PHP, результаты MySQL, что угодно) в памяти. Соедините его с простой в использовании библиотекой кэширования, такой как Zend_Cache, и она сделает кэширование более простым:

$frontendOptions = array(
   'lifetime' => 60, // Seconds to cache
   'automatic_serialization' => true
);

$cache = Zend_Cache::factory('Core',
                             'Memcached',
                             $frontendOptions);

if (!$my_nasty_large_result = $cache->load('my_nasty_large_result')) {
    $nasty_big_long_query = $db->query('SELECT * FROM huge_table');
    $nasty_big_long_result = array();
    foreach ($nasty_big_long_result as $result)
        $nasty_big_long_result[] = $result;

    $cache->save($nasty_big_long_result, 'my_nasty_large_resultt');
}
1 голос
/ 15 декабря 2009

Кеширование MySql в основном просто кэширует наборы результатов против SQL, выданного в базу данных: если оператор / запрос SQL находится в кэше, тогда набор результатов возвращается без какой-либо работы, выполняемой механизмом базы данных. Таким образом, поддержание точности сопряжено с определенными затратами (т. Е. БД должна отслеживать изменения и соответственно очищать записи в кэше).

Сравните это с другими БД, такими как Oracle, где механизм кэширования может принимать во внимание заполнители (связанные переменные) и пропускает "жесткий" анализ (т. Е. Проверяет, является ли SQL допустимым и т. Д.), Если план SQL находится в общий кеш SQL.

Если вы обнаружите, что неоднократно отправляете идентичный SQL в базу данных, кэширование может иметь существенное значение. Если это не так, вы можете даже обнаружить, что дополнительные накладные расходы отменяют любую выгоду. Но вы не будете знать наверняка, пока у вас не появятся какие-либо показатели в вашей системе (то есть профилирование SQL, анализ журналов запросов и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...