Таков вопрос:
У меня имеются тяжелые запросы, и мне нужно эти тяжелые запросы, которые занимают приличное время, кэшировать, и потом если снова пытаемся какой нибудь тяжелый запрос выполнить то обращаться к кэшу уже.
Т.е. получается смысл такой.
....
Запрос который выполняется больше чем 3 секунды
Кэширование, или выборка из кэша
Работаем далее
....
Товарищь под именем FatCat посоветовал кэшировать через файловую систему. Пример тута
Огромное спасибо ему.
![rolleyes.gif](http://phpforum.ru/html/emoticons/rolleyes.gif)
Так вооот. Не подскажете ли какие ещё способы кэширования можно юзать? И что более производительное?
![dry.gif](http://phpforum.ru/html/emoticons/dry.gif)
Спустя 10 минут, 29 секунд (28.07.2009 - 11:51) Sylex написал(а):
isergi
это файловый кэш... очень популярен и вполне оправдывает себя..
при очень высоких нагрузках применяют memcache, думаю название говорит само за себя![wink.gif](http://phpforum.ru/html/emoticons/wink.gif)
http://ru.php.net/memcache
http://habrahabr.ru/blogs/webdev/42607/
и гугл тебе поможет
это файловый кэш... очень популярен и вполне оправдывает себя..
при очень высоких нагрузках применяют memcache, думаю название говорит само за себя
![wink.gif](http://phpforum.ru/html/emoticons/wink.gif)
http://ru.php.net/memcache
http://habrahabr.ru/blogs/webdev/42607/
и гугл тебе поможет
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 2 минуты, 59 секунд (28.07.2009 - 11:54) isergi написал(а):
Не...мем кэш не катит.
Если например софтину ставить клиенту на сервер, и потом объяснять что у тебя чета не хватает, он офигеет. Надо как можно проще.
Ну спасибо за ссылки. Почитаю
Если например софтину ставить клиенту на сервер, и потом объяснять что у тебя чета не хватает, он офигеет. Надо как можно проще.
Ну спасибо за ссылки. Почитаю
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 7 минут, 23 секунды (28.07.2009 - 12:02) isergi написал(а):
Что скажете про такое вот решение?
PHP |
function cache_query($sql, $result) { |
Не будет потом какой нибудь нехватки памяти?
Спустя 11 минут, 6 секунд (28.07.2009 - 12:13) Sylex написал(а):
isergi
ну ты даешь))
не хватки памяти не будет![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Этот кэш реализуется просто - не вызывай за одну сессию 2 одинаковых запроса. Не знаю, как может быть еще иначе...
Приведи пример, где тебе нужен "такой кэш"
ну ты даешь))
не хватки памяти не будет
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Этот кэш реализуется просто - не вызывай за одну сессию 2 одинаковых запроса. Не знаю, как может быть еще иначе...
Приведи пример, где тебе нужен "такой кэш"
Спустя 4 минуты, 22 секунды (28.07.2009 - 12:17) olgatcpip написал(а):
А в постгере есть вьюшки (views) ![rolleyes.gif](http://phpforum.ru/html/emoticons/rolleyes.gif)
А ещё я видела, что результаты запросов в сесси хранят
....
![rolleyes.gif](http://phpforum.ru/html/emoticons/rolleyes.gif)
А ещё я видела, что результаты запросов в сесси хранят
![blink.gif](http://phpforum.ru/html/emoticons/blink.gif)
Спустя 3 минуты, 17 секунд (28.07.2009 - 12:20) Sylex написал(а):
olgatcpip
че за вьюшки? представления что-ли? они и в MySQL есть, если ты о них, и не знаю зачем они здесь..
че за вьюшки? представления что-ли? они и в MySQL есть, если ты о них, и не знаю зачем они здесь..
Спустя 7 минут, 13 секунд (28.07.2009 - 12:27) isergi написал(а):
По поводу View, они не нужны. Эт точно.
В Сессиях хранить результат? о_О Эээ...ну чет не слышал.
В Сессиях хранить результат? о_О Эээ...ну чет не слышал.
Цитата (Sylex 28.07.2009 - 09:13) |
ну ты даешь)) не хватки памяти не будет |
Ну я Х3
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Цитата (Sylex 28.07.2009 - 09:13) |
Приведи пример, где тебе нужен "такой кэш" |
Чет даже затрудняюсь ответить ) Ну есть сайт, лазия по нему, встречаются запросы из огромного количества записей. Так вот если запрос выполняется больше чем 3 секунды, его надо кэшировать, и доставать потом если опять к нему обратимся.
Думаю тот вариант, про который я спросил, самый оптимальный.
Спустя 13 минут, 1 секунда (28.07.2009 - 12:40) sergeiss написал(а):
Тут, опять же, зависит от объёма полученных данных.
Если это простое число (строка), или небольшой набор чисел (строк), то имеет смысл хранить их в отдельном файле или в специальной таблице.
Если это простое число (строка), или небольшой набор чисел (строк), то имеет смысл хранить их в отдельном файле или в специальной таблице.
Спустя 2 минуты, 17 секунд (28.07.2009 - 12:43) Sylex написал(а):
isergi
так вот в твоем случае скрипт отработает - и весь твой "кэш" пропадает![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
используй файловый и не парься
так вот в твоем случае скрипт отработает - и весь твой "кэш" пропадает
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
используй файловый и не парься
Спустя 7 минут, 40 секунд (28.07.2009 - 12:50) Nikitian написал(а):
Если запрос выполняется более 3 секунд, то покажите такой запрос - нужен ли он вообще и не стоит ли его оптимизировать?
От себя: делал на файлах, но перешёл на memcache. На работе пришлось на один посещаемый сайт поставить кэш на файлах, т.к. вечерами он ронял сервак - теперь сервак работает, но вот не ручаюсь за долгую жизнь винтов (на этом сайте более 100 запросов к бд на страницу и чую, винт быстро сдохнет из-за лени админа, которому лень ставить memcache).
Если нет возможности делать memcache, то остаются только файлы. Экзотические методы хранения в памяти не рассматриваем, т.к. для этого надо пересобирать пхп, а тогда проще мемкэш поставить ))
От себя: делал на файлах, но перешёл на memcache. На работе пришлось на один посещаемый сайт поставить кэш на файлах, т.к. вечерами он ронял сервак - теперь сервак работает, но вот не ручаюсь за долгую жизнь винтов (на этом сайте более 100 запросов к бд на страницу и чую, винт быстро сдохнет из-за лени админа, которому лень ставить memcache).
Если нет возможности делать memcache, то остаются только файлы. Экзотические методы хранения в памяти не рассматриваем, т.к. для этого надо пересобирать пхп, а тогда проще мемкэш поставить ))
Спустя 13 минут, 26 секунд (28.07.2009 - 13:04) sergeiss написал(а):
Цитата (Nikitian @ 28.07.2009 - 13:50) |
Если запрос выполняется более 3 секунд, то покажите такой запрос - нужен ли он вообще и не стоит ли его оптимизировать? |
Из моего опыта: бывают такие запросы (до нескольких десятков секунд доходит иногда), и наоптимизировать их уже не получается. Также, впрочем, не всегда их можно и закэшировать
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Естественно, столь "объёмные" запросы получаются при использовании больших таблиц, да еще когда проводится какой-то анализ данных, требующих всяких объединений данных, и нескольких вложенностей запросов.
Спустя 16 минут, 36 секунд (28.07.2009 - 13:20) isergi написал(а):
Sylex
Файловый всё таки не очень такой уж юзабельный. Хотелось бы конечно как нибудь всё таки через переменные и всё такое не файловое.
sergeiss
Вот как раз это продолжение той темы про 100000 записей в таблице, т.е. решили их всё таки как то кэшировать.
Мемкеш тут не катит, потому что не все его ставить будут.
Вот думаю как бы так через массив $qcache но чтобы небыло потери кэша, как сказал Sylex .
Файловый всё таки не очень такой уж юзабельный. Хотелось бы конечно как нибудь всё таки через переменные и всё такое не файловое.
sergeiss
Вот как раз это продолжение той темы про 100000 записей в таблице, т.е. решили их всё таки как то кэшировать.
Мемкеш тут не катит, потому что не все его ставить будут.
Вот думаю как бы так через массив $qcache но чтобы небыло потери кэша, как сказал Sylex .
Спустя 29 минут, 45 секунд (28.07.2009 - 13:50) Sylex написал(а):
Цитата (isergi @ 28.07.2009 - 16:20) |
100000 записей в таблице |
это немного
Цитата (sergeiss @ 28.07.2009 - 16:04) |
Файловый всё таки не очень такой уж юзабельный. |
Цитата (isergi @ 28.07.2009 - 16:20) |
Мемкеш тут не катит |
ну делай как знаешь, ты умный
Спустя 5 часов, 34 минуты, 24 секунды (28.07.2009 - 19:25) PandoraBox2007 написал(а):
Спустя 15 часов, 56 минут, 3 секунды (29.07.2009 - 11:21) isergi написал(а):
PandoraBox2007
Спасибо. Отличная вещчь
Спасибо. Отличная вещчь
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 3 часа, 15 минут, 28 секунд (29.07.2009 - 14:36) Sylex написал(а):
isergi
это опять пример тебе файлового кэша, что я и говорил тебе
это опять пример тебе файлового кэша, что я и говорил тебе
Спустя 2 часа, 49 минут, 4 секунды (29.07.2009 - 17:25) isergi написал(а):
Sylex
Знач я не правильно поняли друг друга. Я приводил пример который мне объяснили в качестве файлового.
Как то думал что про это говорилось. ВОт я его и отвергал.
Знач я не правильно поняли друг друга. Я приводил пример который мне объяснили в качестве файлового.
Как то думал что про это говорилось. ВОт я его и отвергал.
Спустя 1 час, 37 минут, 46 секунд (29.07.2009 - 19:03) Sylex написал(а):
Цитата (isergi @ 29.07.2009 - 20:25) |
Я приводил пример |
ты НЕ приводил пример
Спустя 17 часов, 23 минуты, 23 секунды (30.07.2009 - 12:26) isergi написал(а):
Цитата (isergi 28.07.2009 - 08:41) |
Товарищь под именем FatCat посоветовал кэшировать через файловую систему. Пример тута |
Эни квешнс?
![wink.gif](http://phpforum.ru/html/emoticons/wink.gif)
Спустя 31 минута, 22 секунды (30.07.2009 - 12:58) Sylex написал(а):
Цитата (isergi @ 30.07.2009 - 15:26) |
Эни квешнс? ![]() |
no questions, no comments
![wink.gif](http://phpforum.ru/html/emoticons/wink.gif)
_____________
Рекурсивный салат - огурцы, помидоры, салат.