powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Количественные данные, храним или вытаскиеваем из общей базы?
18 сообщений из 18, страница 1 из 1
Количественные данные, храним или вытаскиеваем из общей базы?
    #36671532
Nekifrovv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сайт знакомств, все сообщения у меня хранятся в одной табличке. кто кому во сколько написал, статус прочитано или нет. Сайт развивается, сообщений все больше и больше.

При входе в меню контакты, напротив каждого контакта пишется сколько с этим пользователем сообщений типа Миша 2045(5), Никита 4788(1) где в скобках это не прочитанные письма. Сейчас письма считаются (count)ом. так вот вопрос, не сильно ли вытаскивание этих количественных данных напрягает mysql? Может быть хранить количественны данные в отдельной табличке одним числом для каждого контакта и иногда делать перерасчет? Как это будет выглядеть на практике когда сообщений будет, скажем, на 5 гигабайт.

Спасибо.
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36671551
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, лучше хранить к-ва и изменять при получении/прочтении сообщения.
Зачем постоянно считать одно и то же?
Хотя предусмотреть процедуру принудительного пересчета тоже не помешает - как административный способ исправить возникшие расхождения.
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36671604
Nekifrovv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,

Спасибо за ответ.
1:0 в пользу хранения количества

Кто еще чего-нибудь добавит ?:)
Охото сделать сразу так чтобы переделывать не пришлось )
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36671647
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nekifrovv1:0 в пользу хранения количества

лучше счетчик поменяйте, собирайте голоса за постоянный расчет количества при помощи запроса. А то так и застынете на 1:0. Не разводить же для пополнения счетчика тысячи страниц...
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36671660
Nekifrovv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

Если честно, не понял ответ.
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36671691
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nekifrovviscrafm,

Если честно, не понял ответ.
Вы собираете голоса в пользу хранения количества. Но собирать нужно в пользу постоянного расчета, как наиболее нетипичного случая
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36671899
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы собираетесь денормализовать вашу табличку сообщений.
Несколько моментов - я абсолютно уверен что табличка сообщений индексирована по пользователю, так что колоссальных выгод вы не получите.
Плюсы денормализации -
1 улучшено время отклика
2 уменьшено количество логических чтений
если у вас СЕЙЧАС с этим проблемы то игра стоит свеч

Минусы -
1 потенциальная дырка - возможность неправильных результатов
если цена неправильных результатов небольшая, или временной лаг несущественнен (открыл пользователь свои сообщения, быстро пересчитали их количества) в худшем случае соврем на первом показе. Либо можно пересчитывать расхождения в момент наименьшей загрузки системы.
2 добавочная работа по обновлению агрегатов - просто проследите чтобы не было конкуренции
3 изменение программы и все неприятности с этим связанные. Оптимизация ради оптимизации - зло
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36673979
Nekifrovv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо за советы.
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36674257
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Варианты:
1) COUNT. Работает хорошо только тогда, когда все нужные индексы влезают в память (кэш индексов) и подсчет идет только по ним, без обращения к таблицам. Однако, хорошие проекты обычно растут быстрее, чем среднестатистический объем памяти на сервере.
2) Хранение. Лучше с точки зрения чтения даже в случаях, когда кэшей недостаточно для хранения всей базы в памяти. Но хуже с точки зрения записи, т.к. нужно модифицировать больше данных при добавлении нового сообщения.
3) Гибридный вариант. Хранить одно число за все предыдущее время до начала очередного расчетного периода. Например, до начала текущих суток. Все, что в пределах текущего расчетного периода считать COUNT-ом. Оба величины складывать. Вариант, имхо, обладает плюсами обоих предыдущих вариантов, но сложнее в реализации.
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36674409
Vinny the POOH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы посоветовал хранить количество, например, в профайле пользователя, инкрементируя его при добавлении ему нового сообщения, и периодический (например - при открытии пользователем раздела "сообщения") их пересчёт. Причина - большое соотношение количества операций чтения/записи.
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36674417
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft +1 к 3му
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36674587
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nekiforovvтак вот вопрос, не сильно ли вытаскивание этих количественных данных напрягает mysql?
Ну если Вы так хотите, мы все дружно придём к вашему mysql и повыспрашиваем, что именно его напрягает и насколько :)

lockyимхо, лучше хранить к-ва и изменять при получении/прочтении сообщения.
Насколько я видел, в комбинации MySQL+ISAM это отличный способ быстро и чётко получить неконсистентные данные. Я допускаю, что это исключительно кривые руки разработчиков, но, судя по тому, что это уже несколько лет не могут поправить несколько меняющихся разработчиков, проблема не совсем тривиальна.

Ну а конструктивно - в последних сообщениях Винни и miksoft назвали, как я полагаю, наилучшие возможные варианты.
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36674851
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerНасколько я видел, в комбинации MySQL+ISAM это отличный способ быстро и чётко получить неконсистентные данные.
Точно? Потому как это ж вроде совершенно штатная операция, которая встречается кругом и везде и т.п.
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36675017
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyТочно? Потому как это ж вроде совершенно штатная операция, которая встречается кругом и везде и т.п.
В проекте, который я регулярно наблюдаю уже больше года, постоянно видно, что update data set value=value+1, выполняемый одновременно с двух рабочих мест, даёт результат +1 вместо +2.
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36675026
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerlockyТочно? Потому как это ж вроде совершенно штатная операция, которая встречается кругом и везде и т.п.
В проекте, который я регулярно наблюдаю уже больше года, постоянно видно, что update data set value=value+1, выполняемый одновременно с двух рабочих мест, даёт результат +1 вместо +2.Речь точно об ISAM? или таки о MyISAM?
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36675041
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftРечь точно об ISAM? или таки о MyISAM?
Я не настолько понимаю в MySQL, чтобы ответить. Я в данном случае выступаю с позиций наблюдательного пользователя - вижу проект на mysql с нетранзакционным движком, вижу, что время от времени, когда пользователи слишком одновременно нажимают на кнопку, идёт глюк, вижу, что этот глюк уже кучу лет не могут толком исправить, даже ругаться перестали.
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36675062
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarermiksoftРечь точно об ISAM? или таки о MyISAM?
Я не настолько понимаю в MySQL, чтобы ответить. Я в данном случае выступаю с позиций наблюдательного пользователя - вижу проект на mysql с нетранзакционным движком, вижу, что время от времени, когда пользователи слишком одновременно нажимают на кнопку, идёт глюк, вижу, что этот глюк уже кучу лет не могут толком исправить, даже ругаться перестали.У MyISAM такого быть не должно. А ISAM давно уже deprecated.
А подзапросы эта версия MySQL поддерживает? Их поддержка началась примерно в то же время, когда ISAM стал deprecated.
...
Рейтинг: 0 / 0
Количественные данные, храним или вытаскиеваем из общей базы?
    #36675082
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftА подзапросы эта версия MySQL поддерживает?
Ну, если соберусь поискать там дырку для sql injection, заодно и проверю :)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Количественные данные, храним или вытаскиеваем из общей базы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]