2016-08-18 3 views
2

Мне говорят, что этот вопрос субъективен, но эй хо.Как сохранить историю действий пользователя

Лучше всего хранить активность пользователя в таблице в базе данных mysql или в XML-файле. Цель состоит в том, чтобы данные были напечатаны на их странице учетной записи.

Я беспокоюсь, что у меня будет либо огромная/медленная база данных, либо много XML-файлов на сервере (по одному для каждого пользователя).

Thanks

+1

Рассмотрите это - действительно сложно когда-либо запросить XML-файлы как единицу для обнаружения совокупных шаблонов для пользователей. Вы можете только намереваться отображать его на своих страницах, но если вы храните его в XML, он никогда не будет полезен ни для чего, кроме этого. Поместите его в базу данных, указав его там, где это необходимо, и он не будет медленным. –

+0

Пожалуйста, укажите более подробную информацию о вашем случае использования: количество пользователей, данные о деятельности, сохраненные данные, продолжительность записи и т. Д. –

ответ

0

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

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

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

Файлы XML часто чрезвычайно дороги для добавления, если вы не сделали что-то вроде того, что Adium did with their reverse XML parser было создано для эффективного добавления в журналы XML.

1

Используйте DB какой-то. У файлов могут быть проблемы с вводом/выводом, блокировкой, одновременным доступом и т. Д. Если вы используете файлы, предпочитайте json over xml. Для RDMS Mysql в порядке. Я бы предложил использовать NOSQL, моим выбором будет Redis.

0

Я предлагаю, чтобы он находился на БД.

1) Как было бы намного проще поддерживать таблицу базы данных для информации журнала, чем отдельные файлы журналов. не так много нагрузки на сервер.

2) для RDBMS вам необходимо запросить те истории журнала пользователя, который будет трудно для XML-файлов

3) Правильная индексация поможет для быстрого извлечения данных.

4) XML чтения стоимость/записи более I/O OP

Смежные вопросы