Xpoint
   [напомнить пароль]

Репликация таблиц Mysql посредством Perl DBI

Метки: [без меток]
[удл]
2011-11-21 09:02:58 [обр] Thunes[досье]

Добрый день.

Задача такая: web-сайт, имеется таблица в БД MySQL, имеются файлы .dbf
которые являются прообразом целевой таблицы в БД.
Каким наиболее быстрым и правильным способом наладить синхронизацию данных от dbf к БД MySQL?
При этом есть условие о минимальном простое БД.

я написал процедуры которые проверяют (через DBI) все записи в MySQL и новых файлах dbf.
и решают, какую запись вставить, какую удалить, а какую добавить.
Когда число записей около 2-5 тыс. все работает достаточно быстро и здорово,
но как только попадается табличка с числом записей 100 тысяч, то здесь скрипт встает в ступор.
Предполагаю что есть более гуманные методы: например

  1. залить все данные во временную таблицу, затем сделать flock блокировку для всех клиентов, и переименовать табличку, должно быть быстро.
  2. удалить все данные и залить их LOAD DATA, тормознутый метод.
  3. скриптом подготовить все данные такие как INSERT, DELETE, UPDATE в текстовые SQL файлы, и затем без остановки делая изменения.

Хотелось бы услышать мнение компетентных коллег-программистов.

спустя 1 час 58 минут [обр] Jared(0/26)[досье]

Thunes[досье], профилируйте, выясните, в каком именно месте ваш скрипт встает в ступор. Возможно, проблема совсем не там где вам кажется.
Вообще, при грамотном подходе ступора и на 100к записей особо быть не должно. Какие объемы данных?

Какой подход вы использовали в своих скриптах? Без кода и данных профилировщика сложно сказать, почему не работает ваш подход, в чем узкое мето. И тем более сложно предложить сопсоб, который вам пододйдет больше.

спустя 16 дней [обр] Алексей Севрюков(198/1280)[досье]
А при вставке большого количество данных вы индексы отключаете?
Powered by POEM™ Engine Copyright © 2002-2005