Оптимизация БД, InstantCMS

#1 5 января 2014 в 07:24
Суть такова: много данных из БД не оптимизируются через задачи cron.
Сужу по своей БД. Наиболее всего засоряется таблица cms_banner_hits.
Я вообще не понимаю для чего нужна данная таблица.
Она содержит IP тех, кому показывались баннера и ничего больше.
Данные даже нигде не выводятся.
Смысл было создавать такую функцию?
Думаю компонент: Баннеры — не доработан.

Следующая таблица: cms_forum_votes.
В этой таблице содержаться данные какой пользователь за что проголосовал.
Проблема такая: опрос/голосование закончилось, зачем хранить эти данные?
Вывод этих данных так же не произведён на сайте и считаю, что это только засоряет БД.

Как раз ещё захотелось проверить, как работает голосование на форуме!
Меня это очень разочаровала… Как я и думал, вывод количества голосов берётся с помощью подсчёта проголосовавших пользователей. Естественно, при большом количестве пользователей будет сильно нагружаться БД.
Решение данной проблемы просты: создать дополнительную таблицу, допустим cms_forums_polls_all.
Данная таблица должна содержать id голосования и количество проголосовавших за ответы, то есть id — 1 / b1 — 15 / b2 — 30 / b3 — 50
Это к примеру.
Работать это должно всё тоже по крону. Есть таблица проголосовавших, крон из этой таблице переносит голоса в ту таблицу, которую я привёл.
Вывод проголосовавших происходит из той таблице, которую я привёл.
Так же надо ещё создать одну задачу крон, после окончания времени голосования, очищать пользователей, которые проголосовали за оконченный опрос.

Это два примера оптимизации, который я заметил на глаз в спешке.
Думаю, имеются и ещё другие.
Если ваш сайт посещают по несколько тысяч пользователей в день, то понятное дело, что это всё будет прилично нагружать ваш сервер.

Надеюсь разработчики учтут эти ошибки и попытаются это исправить.
Так же если я дойду да этого уровня, я сам их исправлю, но думаю это будет не скоро.

Спасибо за внимание :)
#2 5 января 2014 в 12:45

Работать это должно всё тоже по крону

ByFly
Инстант позволяет добавлять свои задания в cron. Создайте правило, и будет вам счастье.
#3 5 января 2014 в 13:19

Создайте правило, и будет вам счастье

CaT
Интересно все же мнение разработчиков, заявленная проблема ведь касается всех. Я, например, такого "насоздаю", что счастье для сайта закончится раньше… А если понимать что сайтов много, зачем всем делать одно и то же правило.
#4 5 января 2014 в 20:11
CaT, одним кроном тут не обойдёшься, надо переписывать коды.
#5 5 января 2014 в 20:48

Наиболее всего засоряется таблица cms_banner_hits.

ByFly
видимо не засоряется, а наполняется и работает.

Я вообще не понимаю для чего нужна данная таблица

ByFly
это не значит, что она не нужна

Смысл было создавать такую функцию?

ByFly
смысл было писать о том, что не знаете?

Проблема такая: опрос/голосование закончилось, зачем хранить эти данные?

ByFly
удаляйте, только потом не задавайте глупых вопросов, на тему "проблема с голосованиями на форуме"

Надеюсь разработчики учтут эти ошибки и попытаются это исправить

ByFly
если бы разработчики шли на поводу у таких вот "сообщениях об ошибках", то система не работала.

Если ваш сайт посещают по несколько тысяч пользователей в день, то понятное дело, что это всё будет прилично нагружать ваш сервер.

ByFly
не занимайтесь искажением действительности.

считаю

ByFly
вы можете считать что угодно, кто же против, только если заявляете что-то — аргументируйте (и не просто фразой "я считаю") и делайте лучше — а мы с удовольствием внесем в релиз.

имхо, все, что описано ТС надумано и судя по всему ByFly овладела "параноидальная оптимизация".
#6 6 января 2014 в 00:40

параноидальная оптимизация

Fuze
laugh
пора в википедию добавлять, параноидальная оптимизация, параноидальная сеонизация, параноидальная индексация…
#7 6 января 2014 в 06:46
Fuze, советуешь как лучше, а относятся негативно...
Сами подумайте, что больше нагружает БД: подсчёт суммы или просто вывод переменной?

Так же недавно на этом форуме я видел тему: нагружается сильно сервер при посещении от 1000 человек в сутки.
Что я увидел в ответе от тех. поддержки или опытных программистов?
— Перейдите на более мощный сервер.
Выводы делайте сами. Разработчикам проще сказать: купите более мощное, чем сказать: мы попытаемся оптимизировать систему.

P.S. а вы видела размер вашей БД? я примерно около года не оптимизировал БД вручную и моя БД весила более 10мб, делайте выводы сами.
#8 6 января 2014 в 09:15

советуешь как лучше

ByFly
предложите сразу свое, оптимизированное решение.

относятся негативно

ByFly
никакого негатива

Разработчикам проще сказать: купите более мощное, чем сказать: мы попытаемся оптимизировать систему.

ByFly
ICMS уже оптимизирована достаточно.

а вы видела размер вашей БД

ByFly
да, 246.9 МБ, но я вам открою тайну — размеры БД могут быть и больше, причем на порядок.

и моя БД весила более 10мб

ByFly
это вы считаете много? У вас оперативной памяти на сервере 64 мб? При ваших размерах базы ее всю можно держать в оперативной памяти)

ByFly, мне в свое время приходилось обслуживать сайты еще на ICMS 1.7, где реально были проблемы с оптимизацией, так вот даже они держали посещаемость в 20К на простеньком сервере на AMD и 2Г ОЗУ.
#9 6 января 2014 в 11:29

Что я увидел в ответе от тех. поддержки или опытных программистов?
— Перейдите на более мощный сервер.

ByFly

А что страшного в этом ответе? Хостинг это зависящее от многих факторов решение, в том числе и от оверселлинга и соседей на хостинге. При выходе на более менее посещаемость, всегда следует улучшать и параметры железа. Плюс, когда автор писала как выбирает хостинг, было ясно, что менять надо.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.