Я пытаюсь синхронизировать базу данных mssql (размещенную в офисе клиента) с базой данных mysql, которая находится на платформе хостинга, где находится веб-сайт клиента.
Я уже успел успешно синхронизировать три из четырех таблиц (структура и данные) базы данных.
Проблемы возникают, когда я пытаюсь синхронизировать 4-ю таблицу, в которой содержится около 2300 записей с 2 полями BLOB с изображениями каждого продукта.
Первое, что я попробовал, было
SELECT * FROM chunkyTable
но многие тайм-ауты были запущены (несмотря на то, что я установил "mssql.timeout
" на 7200.
Итак, я настроил постраничную синхронизацию, которая читает 10 записей каждого запроса и вставляет их в базу данных mysql.
Все работает гладко для первых 150 записей.
Из журнала, который я делаю, я вижу, что для первых 15 страниц синхронизация 10 записей занимает от 2 до 6 секунд (учтите, что с веб-сайта, который я подключаю к серверу mssql, который подключен к обычному ADSL, который представляет собой довольно большое узкое место) ).
С 16-й страницы время, необходимое для синхронизации 10 записей, увеличивается до 5:30 секунд.
Сначала я подумал, что это связано с тем, что в первых 150 записях не было сохранено ни одного изображения, поэтому я проверил, что было вставлено в mysql, и обнаружил, что ничего не было вставлено!
Это привело меня к мысли, что, возможно, mysql имеет некоторые ограничения на длину аргумента, передаваемого функции mysql_query ().
Способ составления запроса:
INSERT INTO chunckyTable(field1,field2,...fieldN)
VALUES (val1,val2,val3,...,valN),(val4,val5,val6,...,valM),
и т. Д.
повторяется для 10 записей.
Знаете ли вы, есть ли какие-то ограничения на максимальную длину строки sql, передаваемой в функцию mysql_query (я посмотрел на вывод phpinfo()
, но в этой теме нет настроек)?
У вас есть подобный опыт с такой синхронизацией?
Любая помощь будет принята с благодарностью!
Спасибо,
Люк