Как правильно хранить статистические данные в базе MySQL?
Доброго времени суток друзья! Проект: социальная площадка. На ней постоянно работает несколько тысяч пользователей. Как правильно вести журчать аналитики по каждому пользователю?
Каждый пользователь совершает действия, сделки. Их необходимо хранить таким образом что бы можно было их "выдернуть" в любой момент. Да возможно выборки тоже должна присутствовать.
Подскажите как правильно! Создавать отдельную таблицу под каждого пользователя? Как подтягиваться данные будут вообще неважно.
1. 10 млн строк в неделю- это не много.
2. Вставляйте не по одной строке, а пачкой. Оно быстрее будет.
3. Держите несколько таблиц, например за каждый день 1 таблица. Т.о. прореживание данных будет элементарной задачей.
4. Подумайте про индексы.
2. Пачкой пока не удается. В кеше хранить не хочется, пока что.
Хорошее предложение, одна страничка на один день
Ну пока строить индексы не очень хочется
Для аналитики неоптимально использовать MySQL, лучше посмотреть в сторону колоночных баз. Хотя для такого объема подойдет и MySQL с разбивкой на таблицы по дням, неделям или месяцам.
У меня данные в эту таблицу будут записываться потоково. Раз в 1 минуту будет записываться около 1000 строчек записей(для каждого пользователя). И так почти 24/7. Через неделю эта таблица будет вмещать 1000*60*24*7 = 10 080 000 записей. Это как то многовато. Есть еще предложения ?