Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > [MySQL] пренос данных из очень нагруженной таблицы


Автор: patap 19.7.2012, 10:47
Есть сервер Logs, и таблица visit. в Logs.visit - пишется статистика.
нагрузка этой таблицы примерно 500.000 инсертов в час => каждый день вставляется окло 13.000.000 записей

Есть сервер Multi, таблица report. в Multi.report - нужно переносить статистику из Logs.visit за текущий день.

Перенос данных - кроном
Как лучше организовать перенос этих данных, с минимальной нагрузкой на Logs.visit, т.к как к этой таблице идет много инсертов и главное - это быстро сделать инсерт ?


я думал сделать так:
Logs.visit - разбить на две таблицы: Logs.visit_a и Logs.visit_b
по четным часам: писать в Logs.visit_a и выгребать инфу из Logs.visit_b в Multi.report, переностиь из Logs.visit_b в Logs.visit, удалять из Logs.visit_b
по нечетным: наоборот - писать в Logs.visit_b и выгребать инфу из Logs.visit_a в Multi.report из Logs.visit_a в Logs.visit, удалять из Logs.visit_a

При таком раскладе юзера всегда будет обращаться к свободной от селектов таблице.

У кого какие идеи, советы?


Автор: Fortop 20.7.2012, 14:42
Выборки по этой таблице не предусмотрены?
Тогда пишите в какой-нибудь redis,  а оттуда уже переносите в фоне 

P.S. а почему не настроить репликацию?
Вам записи в Logs мешают? Если их не удалять оттуда?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)