Чтение и запись базы данных - PullRequest
4 голосов
/ 27 апреля 2011

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

Мне нужно вывести данные для деловых людей + эти люди могут запрашивать данные прошлых действий.Следовательно, есть от полу-среднего до высокого чтения.Мне не нравится идея чтения и записи из одной и той же таблицы с высоким трафиком.

Так что в идеале я хочу разделить таблицы: первая для быстрой записи (без фкс), затем скопировать эти данные поверх полностью отформатированных и вытянуть все метки для идентификаторов в таблицу чтения для чтенияиспользовать.

Итак, вопросы:
1) Это лучший подход для меня?
2) Если я сохраню 2 таблицы, как их синхронизировать?Я не могу скопировать данные в таблицу чтения сразу же после их записи в таблицу записи - тогда это лишит смысла использование отдельных таблиц, и я не смогу сохранить таблицу чтения устаревшей, поскольку данные активности отслеживают связи с другими пользовательскими данными.например, session_id и т. д., поэтому, если эти идентификаторы не готовы, когда их прецедент вызывает их, запись не будет выполнена.

Я использую MySQL для пользовательских данных и HBase для некоторых больших таблиц, с php codeignitor для моего приложения.

Спасибо.

1 Ответ

2 голосов
/ 27 апреля 2011

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

В конечном итоге я получил 1 таблицу MEMORY, в которой хранятся «живые» данные, которые вставляются / обновляются/ удалено почти для каждого события и другой таблицы, в которой были дубликаты строк оперативных данных, но без ненужных системных столбцов - моя таблица истории, которая использовалась для чтения только по запросу.

Активная таблица актуальна только дляк запущенному процессу, поэтому мне все равно, будут ли содержащиеся в нем данные потеряны из-за сбоя сервера - все данные, которые необходимо прочитать позже, уже сохранены в таблице истории.Итак ... нет проблем с дублированием данных в двух таблицах - ваша цель - производительность, а не нормализация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...