AntiSlaed CMS
Вход
Логин: Пароль:Забыли пароль?
Запомнить вас на этом компьютере?
Войти скрытым?

Здравствуйте, Гость ( Вход | Регистрация )

> Внимание!

Адрес нашего форума изменился, теперь мы доступны по адресу antislaed.net. Обновите ссылки и закладки, он больше не изменится.


 
Ответить в данную темуНачать новую тему
> Кеширование запросов
vitalik1972
сообщение Jan 18 2012, 14:03
Сообщение #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
vitalik1972, Вас 2 раз(а) поблагодарили за это сообщение:
DjSalamander, rnd
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение

Ответить в данную темуНачать новую тему

2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
 

RSS Текстовая версия Сейчас: 17 May 2024 - 10:51
Хостинг предоставлен NetLevel.Ru   Eleanor CMS