[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Снижение нагрузки на mysql
[MI_nor]
Помогите советом =)

Требуется на главной сайта выводить новости согласно замысловатому алгоритму.
Грубо говоря таблица ностей будет представлять из себя матрицу 4х7, если изобразить схематично...

рубрики рубрики рубрики рубрики
+++++сегодня++++++++++++
новость новость новость новость
+++++вчера+++++++++++++
новость новость новость новость
+++++позавчера++++++++++
новость новость новость новость
+++++и.т.д++++++++++++++
новость новость новость новость
++++++++++++++++++++++
новость новость новость новость
++++++++++++++++++++++
новость новость новость новость
++++++++++++++++++++++
новость новость новость новость

Т.е новости разделены по дням и соответствующим рубрикам. И если для каждой новости в отдельности создавать несколько запросов(нужно проверить новость на соответствие рубрике, на дату и на рейтинг), то не слишком ли много запросов будет к базе и не чревато ли это будет при большой посещаемости? Можно ли как-то облегчить сей процесс вывода?)



Спустя 19 минут, 45 секунд (14.07.2010 - 11:41) Rand написал(а):
Какая-то странная таблица. Столбцы в таблице должны быть - рубрика, текст новости, дата и т.д.
Делать всего один запрос на выборку всех записей за последние 7 дней, а потом в скрипте уже условным оператором сортировать по полю дата.

Спустя 38 минут, 27 секунд (14.07.2010 - 12:20) sergeiss написал(а):
Rand - странный ответ smile.gif Зачем сортировать в скрипте, если это всё можно сделать намного проще сразу же в запросе?

[MI_nor] - мне кажется, лучше сделать отдельную таблицу для самых свежих новостей, соответствующих каждому критерию (ведь именно их ты будешь выводить, да?). Эта таблица будет обновляться только при поступлении новости. А выбрать данные из таблицы в 28 строк... Это одно мгновение smile.gif


Спустя 1 час, 49 минут, 5 секунд (14.07.2010 - 14:09) Basili4 написал(а):
Rand
можно по событию её наполнять например раз в день убивать её содиржимое и снова выбирать

Спустя 1 минута, 27 секунд (14.07.2010 - 14:10) Rand написал(а):
Basili4, я тупанул, допёр потом, удалил своё сообщение, но ты мне уже ответил )) Он же написал, что обновлять при добавлении новости =)

Я вообще сначала подумал, что [MI_nor] нарисовал таблицу в БД, теперь понял, что это дизайн главной страницы biggrin.gif

Спустя 4 минуты, 40 секунд (14.07.2010 - 14:15) sergeiss написал(а):
Цитата (Basili4 @ 14.07.2010 - 15:09)
можно по событию её наполнять например раз в день убивать её содЕржимое

А зачем? Можно просто по поступлению новости это делать smile.gif Иначе - информация будет не актуальная.

Спустя 1 минута, 14 секунд (14.07.2010 - 14:16) Basili4 написал(а):
а убивать её как так новости и будут копится

Спустя 23 минуты, 29 секунд (14.07.2010 - 14:40) sergeiss написал(а):
Цитата (Basili4 @ 14.07.2010 - 15:16)
а убивать её как так новости и будут копится

Зачем убивать???
Я вот написал ранее в этой теме
Цитата (sergeiss @ 14.07.2010 - 13:20)
мне кажется, лучше сделать отдельную таблицу для самых свежих новостей, соответствующих каждому критерию

Раз 7 дней и 4 раздела, то будет там только 28 строк. Как только появилась новость, то только обновляем (!) одну строку в этой таблице. И еще новость записываем в общую таблицу новостей. Тогда запрос на свежайшие новости будет простейшим, будет возвращать только 28 строк (т.е. всю таблицу!!!), а это почти нулевая нагрузка на БД.

Спустя 30 минут, 7 секунд (14.07.2010 - 15:10) Basili4 написал(а):
а я не так понял

Спустя 2 дня, 2 часа, 2 минуты, 56 секунд (16.07.2010 - 17:13) [MI_nor] написал(а):
Госсподи, сколько-ж понаписали пока меня не было =)
sergeiss, идея ваша мне очень понравилась, но только есть 1 ньюанс. Новости на главной отображаются не самые свежие, а самые популярные. А при каждом голосе сравнивать и обновлять таблицу как-то не удобно ) Скажите, а для этого случая как-то адаптироваться можно?

З.Ы проблема в этом отпала, решил не делать себе лишний геморой =) Сделаю как вы предложили

З.Ы.Ы возник еще вопрос. Если у меня новости должны меняться в зависимости от региона и масштаба(их выбирает юзер), то нормально ли что для каждого региона придется создавать таблицу? Ведь их тогда будет ох как много...

Спустя 2 дня, 15 часов, 2 минуты, 54 секунды (19.07.2010 - 08:15) sergeiss написал(а):
Цитата ([MI_nor)
,16.07.2010 - 18:13]Госсподи, сколько-ж понаписали пока меня не было =)

Это разве много smile.gif Вот если бы страниц 5 "наспорили бы" - это было бы "много" wink.gif

Цитата ([MI_nor)
,16.07.2010 - 18:13]З.Ы.Ы возник еще вопрос. Если у меня новости должны меняться в зависимости от региона и масштаба(их выбирает юзер), то нормально ли что для каждого региона придется создавать таблицу? Ведь их тогда будет ох как много...

А зачем разные таблицы? Сделай в этой же таблице отдельное поле - индекс региона. И выбирай по нему. Всё равно регионов не так и много smile.gif 28 умножить на их количество - это очень маленькая табличка. А контролировать ее будет также просто.

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.