【发布时间】:2012-01-05 14:27:50
【问题描述】:
我正在尝试将 mssql 数据库(托管在客户办公室)与托管平台上的 mysql 数据库同步,该托管平台上有客户的网站。
我已经成功同步了数据库的四个表(结构和数据)中的三个。 当我尝试将具有大约 2300 条记录和 2 个 BLOB 字段的第 4 个表与每个产品的图像同步时,麻烦就来了。 我尝试的第一件事是
SELECT * FROM chunkyTable
但许多超时被触发(尽管我将“mssql.timeout”设置为 7200。
所以我设置了一个分页同步,每个查询读取 10 条记录并将它们插入到 mysql 数据库中。
前 150 条记录一切正常。 从我制作的日志中我可以看到,对于前 15 页,同步 10 条记录大约需要 2 到 6 秒(考虑到我从网站连接到与普通 ADSL 连接的 mssql 服务器,这构成了一个很大的瓶颈)。 从第 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 条记录。
您知道传递给 mysql_query 函数的 sql 字符串的最大长度是否有一些限制(我查看了phpinfo() 输出,但没有关于此主题的任何配置)?
您对这种同步有类似的经验吗? 任何帮助将不胜感激!
谢谢, 卢克
【问题讨论】:
标签: php mysql sql-server synchronization migration