![]() |
![]() |
ВходЗдравствуйте, Гость ( Вход | Регистрация )
|
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
Живу на АС ![]() Группа: Пользователи Сообщений: 765 Регистрация: 10.6.2008 Из: Оренбург Пользователь №: 4,176 Спасибо сказали: 211 Вставить ник ![]() |
Всем прекрасно известно, что АС генерирует МНОЖЕСТВО запросов к БД.
И многим так же известно, что встроенный в MySQL (начиная с версии 4.0) механизм кеширования зачастую вовсе не работает. Не так давно один из пользователей АС с числом уникальных посетителей в сутки порядка 45-50 тысяч уников в день (ДА!ДА! Есть на АС пара-тройка таких высоконагруженных сайтов) попросил меня оптимизировать его сайт. Когда дошли руки до оптимизации SQL запросов я был неприятно поражен тем, что кеш SQL практически не работает. Проанализировав код пришел к следующему: кеш сбрасывается, когда выполняется запрос UPDATE к таблице. А когда он у нас выполняется? Правильно, когда увеличивается счетчик прочтенной статьи или новости. Просто отказаться от данного счетчика я посчитал неудобным, так как по нему строится рейтинг той или иной новости или статьи. Поэтому пошел следующим путем: создал еще одну табличку со счетчиками, в которой и хранятся данные о прочтении. Ну и само собой разумеется изменил запросы, проверяя время последнего изменения в таблицах. И произошло чудо (IMG:http://antislaed.net/style_emoticons/default/smile.gif) Кеш начал работать! Время выполнения запросов снизилось практически в 10 раз. Надеюсь данный пост будет полезен заинтерессованным лицам, спасибо за внимание (IMG:http://antislaed.net/style_emoticons/default/smile.gif) Сообщение отредактировал vitalik1972: Jan 18 2012, 14:10 |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25 April 2025 - 19:57 |