我在Windows机器上有一个支持ODBC连接的数据源。我想以编程方式每小时将整个数据源复制到MySql数据库。是否比执行select * from
更快,然后为每行执行insert
?
答案 0 :(得分:1)
你可能无法避免使用select * from
但是你可以通过在复制和重新启用之前禁用目标表上的键来显着提高它(取决于表的大小和索引列的数量)他们之后。这是doc。
答案 1 :(得分:1)
不要为每一行插入。每一个都需要额外的时间让DB响应每一行成功。相反,使用SQL事务一次创建100个插入批次...
答案 2 :(得分:1)
如前所述,无法避免select * from
。
但是,如果将所有数据写入文件并使用LOAD DATA INFILE ...
,则插入比其他方法快两个数量级。
插入内容足够快,可以承担将ODBC数据写入文件并完全删除MySql数据并从头开始的成本。