2010-04-28 8 views
1

Какой метод вы предлагаете и почему?Mysql - Сводные таблицы

Создание сводной таблицы и. , ,

1) Обновление таблицы как действие происходит в реальном времени.

2) Запуск группы по запросам каждые 15 минут для обновления сводной таблицы.

3) Что-то еще?

Данные должны быть почти в реальном времени, он не может ждать час, день и т.д.

ответ

2

Я думаю, что есть третий вариант, который может позволить вам управлять своими ресурсами процессора немного лучше. Как насчет написания отдельного процесса, который периодически обновляет сводные таблицы данных? Вместо того, чтобы воссоздавать резюме с группой, с которой ГАРАНТИРОВАН, чтобы работать медленнее с течением времени, потому что каждый раз, когда вы это делаете, будет больше строк, возможно, вы можете просто обновить значения. В зависимости от характера данных это может быть невозможно, но если это так важно, что он не может ждать и должен быть почти в режиме реального времени, тогда я думаю, что вы можете позволить себе время, чтобы настроить схему и разрешить чтобы обновить его без необходимости читать каждую строку в исходных таблицах.

Например, ваши данные равны login_data (имя пользователя cols, login_timestamp, logout_timestamp). Ваше резюме может быть login_summary (cols username, count). Через каждые 15 минут вы можете обрезать таблицу login_summary, а затем вставить, используя select username, count (*) тип кода. Но тогда вам придется пересканировать всю таблицу каждый раз. Чтобы ускорить работу, вы можете изменить сводную таблицу на столбец last_update. Затем каждые 15 минут вы просто делаете обновление для каждой записи, более новой, чем запись last_update для этого пользователя. Сложнее, конечно, но имеет некоторые преимущества: 1) Вы только обновляете строки, которые изменились, и 2) вы только читаете новые строки.

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

+0

dunno почему это не имеет upvote, отличный ответ – NateDSaint

+0

Спасибо, @Nate. Сейчас уже немного обновляться, поэтому я предполагаю, что ОП решила свою проблему и двинулась дальше. Надеюсь, так или иначе. – MJB

+0

Я пытаюсь найти ответы на одни и те же вопросы, поэтому мне это помогло. :) – NateDSaint

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