Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хранение больших логов для каждого пользователя? / 11 сообщений из 11, страница 1 из 1
21.01.2016, 15:21:42
    #39152350
manking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение больших логов для каждого пользователя?
Как лучше организовать хранение записей, логов(статистики) о пользователе?


За 2 года среднего использования 1 юзер будет иметь около 2500 записей в базе(~3 записи в день на пользователя, и примерно 50тыс новых записей в день). Это реальные данные которые сейчас есть в аналогичном проекте.
1) Предполагается, что пользователей будет около 100 000 за 2 года.
2) Какой тип таблиц выбрать, myisam или innodb или же для каждого пользователя завести свою таблицу, делать ли дополнительные таблицы с предварительными расчетами и.т.д.?
3) Данные вставляются и считываются постоянно пользователями, запросов insert-replace значительно больше чем select. Данные всегда вставляются(замещают) в конец таблицы, то есть на сегодняшний день, записывать или менять данные предыдущих дней нельзя. Если идёт запись то только now() today.
4) Пользователь может делать выборку записей с группировкой и сортировкой по датам(по дням, месяцам, годам без группировки результата, выбирается последнее значение на дату), за всё время, только своих записей.
5) Генерация результата должна быть меньше секунды, пользователь не должен ждать пока там база рассчитывает данные несколько секунд.


Данные такие, одни числовые типы и тип date.
авторid_user(int(11)) -id пользователя
id1(int(11)) - ключи на другие таблицы
date(date) - дата когда была запись, уникальна в пределах дня
id2(int(11)) - ключи на другие таблицы
id3(int(11)) - ключи на другие таблицы
id4(int(11)) - ключи на другие таблицы

Уникальный индекс основан на 3 ключах
id_user,id1,date(уникальность в пределах дня).
...
Рейтинг: 0 / 0
21.01.2016, 16:13:48
    #39152397
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение больших логов для каждого пользователя?
mankingКакой тип таблиц выбрать, myisam или innodb
InnoDB

mankingили же для каждого пользователя завести свою таблицу
Забудь как страшный сон.
...
Рейтинг: 0 / 0
21.01.2016, 16:32:21
    #39152421
manking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение больших логов для каждого пользователя?
mankingили же для каждого пользователя завести свою таблицу
Забудь как страшный сон.[/quot]
А в чем именно недостаток этого?
Работа с базой станет медленной, или размер станет огромным, или какое нибудь кэширование не будет нормально работать, внутренняя оптимизация запросов всё будет тормозить?
Где нибудь есть статьи, где бы описывалось почему это плохо и ужасно заводить много таблиц?
...
Рейтинг: 0 / 0
21.01.2016, 16:56:46
    #39152446
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение больших логов для каждого пользователя?
mankingГде нибудь есть статьи, где бы описывалось почему это плохо и ужасно заводить много таблиц?"Нормализация".
...
Рейтинг: 0 / 0
21.01.2016, 17:08:58
    #39152467
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение больших логов для каждого пользователя?
За 2 года среднего использования 1 юзер будет иметь около 2500 записей в базе(~3 записи в день на пользователя, и примерно 50тыс новых записей в день).

Не очень понятно, как так -- 2500 или 50 тыщ ?



1) Предполагается, что пользователей будет около 100 000 за 2 года.

Дели на 10/100 сразу... Не будет.


2) Какой тип таблиц выбрать, myisam или innodb или же для каждого пользователя завести свою таблицу, делать ли дополнительные таблицы с предварительными расчетами и.т.д.?


Inno. Но совсем не поэтому.


3) Данные вставляются и считываются постоянно пользователями, запросов insert-replace значительно больше чем select. Данные всегда вставляются(замещают) в конец таблицы, то есть на сегодняшний день, записывать или менять данные предыдущих дней нельзя. Если идёт запись то только now() today.


У таблицы нет начала и конца...


4) Пользователь может делать выборку записей с группировкой и сортировкой по датам(по дням, месяцам, годам без группировки результата, выбирается последнее значение на дату), за всё время, только своих записей.


индекс по (user, date) -- и вперёд...


5) Генерация результата должна быть меньше секунды, пользователь не должен ждать пока там база рассчитывает данные несколько секунд.


Ну, это ты сначала таблицы сделай, данными наполни, запрос напиши, а потом уже будешь рассуждать, что он там тебе должен....
...
Рейтинг: 0 / 0
21.01.2016, 17:09:49
    #39152471
manking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение больших логов для каждого пользователя?
AkinamankingГде нибудь есть статьи, где бы описывалось почему это плохо и ужасно заводить много таблиц?"Нормализация".
По теме "нормализация" не нашел ничего что связано с проблемами множества таблиц.
Можете дать ссылку на это?



Почитал это.
https://dev.mysql.com/doc/refman/5.5/en/creating-many-tables.html
https://dev.mysql.com/doc/refman/5.5/en/table-cache.html

Получается, что когда много таблиц, то запись и чтение очень медленными будут.
Из-за кеша куда помещаются несколько таблиц, а так как уникальных таблиц много, то они постоянно удаляются и помещаются в кеш снижая производительность?
...
Рейтинг: 0 / 0
21.01.2016, 17:12:03
    #39152475
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение больших логов для каждого пользователя?
mankingmankingили же для каждого пользователя завести свою таблицу
Забудь как страшный сон.
А в чем именно недостаток этого?
[/quot]

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

mankingРабота с базой станет медленной, или размер станет огромным, или какое нибудь кэширование не будет нормально работать, внутренняя оптимизация запросов всё будет тормозить?
Где нибудь есть статьи, где бы описывалось почему это плохо и ужасно заводить много таблиц?

Что плохо почему? Почему плохо проектировать БД как посетитель детского сада ?
Таких статей, боюсь, нет. Есть другие -- как проектировать БД правильно. И ты там нигде не найдёшь "для каждого пользователя завести свою таблицу". А если найдёшь -- покажи нам, мы тебе скажем обосновано, почему автор этой статьи -- глубокий безграмотный дундук.
...
Рейтинг: 0 / 0
21.01.2016, 17:14:23
    #39152479
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение больших логов для каждого пользователя?
mankingПочитал это.
Получается, что когда много таблиц, то запись и чтение очень медленными будут.


Интересно ты статьи читаешь... Главное, выводы делаешь очень интересные.
Почитай лучше другие статьи, по теме "партицирование таблиц" "table partitioning ( in MySQL)"
...
Рейтинг: 0 / 0
21.01.2016, 17:21:35
    #39152497
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение больших логов для каждого пользователя?
mankingПо теме "нормализация" не нашел ничего что связано с проблемами множества таблиц.
А то, что одна сущность - одна таблица, там не написано разве?
mankingПолучается, что когда много таблиц, то запись и чтение очень медленными будут.
Ну это особенности файловой системы прежде всего. И кэширования, само собой - причём как системного, так и MySQL-ного.
...
Рейтинг: 0 / 0
21.01.2016, 20:26:06
    #39152621
Хранение больших логов для каждого пользователя?
manking,

погугли про какую-то модную лабуду навроде logstash, elasticsearch и mongodb, а мускуль оставь для задач рсубд, а не собирания логов
...
Рейтинг: 0 / 0
22.01.2016, 13:47:08
    #39152997
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение больших логов для каждого пользователя?
мимопроходилтреднечиталmanking,

погугли про какую-то модную лабуду навроде logstash, elasticsearch и mongodb, а мускуль оставь для задач рсубд, а не собирания логов

Эт всё дерьмо собачье.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хранение больших логов для каждого пользователя? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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