鸡肉或鸡蛋......在从Access导出到MySQL之前定义引擎,如何?

时间:2014-07-29 13:17:06

标签: mysql vba ms-access access-vba ms-access-2010

在这里有点窘迫,我一直在尝试很多想法,我认为我已经陷入了几个小时的出口。

我有一些查询每24小时从Microsoft Access导出到MySQL,问题是出口需要大约一个半小时才能完成。

MySQL数据库默认使用InnoDB引擎,但MyISAM添加数据的速度更快?如果我使用ODBC或DoCmd.TransferDatabase,我只能在缓慢导出后将数据库编辑为MyISAM,是否有更快的方式导出数据?

导出的数据集耗时很长,大约有40,000条记录(10列数据)。真的需要这么久吗?

我在VBA中的当前工作流程是连接到MySQL并在重新创建之前删除该表。就像我说的那样,这对于巨大的桌子来说还可行 - 可能很快会有另一个这样的大小,并且真的不需要几个小时来获取数据。欢迎任何帮助。

尝试了以下与我设置的ODBC匹配的连接(并尝试了Macro调用已保存的导出过程):

Set cn = CreateObject("ADODB.Connection")
cn.Open "Driver={MySQL ODBC 5.3 ANSI Driver};Server=" & _
        Server_Name & ";Database=" & Database_Name & _
        ";Uid=" & User_ID & ";Pwd=" & Password & ";"

SQLStr = "CREATE TABLE " & tblName & "(Code VARCHAR(10), Name VARCHAR(255), RegionCode VARCHAR(11), RegionName VARCHAR(100), CountryCode VARCHAR(10), CountryName VARCHAR(255), Address1 VARCHAR(255), Address2 VARCHAR(255), Address3 VARCHAR(255), Address4 VARCHAR(255), PostCode VARCHAR(20), Phone VARCHAR(30));"

rs.Open SQLStr, cn, adOpenStatic

SQLStr = "INSERT INTO " & tblName & " SELECT * FROM qryQuery1;"

0 个答案:

没有答案