【发布时间】:2013-01-01 06:59:28
【问题描述】:
我有一个 2Gb XML 文件,我想将它加载到 MySQL 中的单个表中。
记录/行数约为 140,000,但 MYSQL 中 LOAD XML 函数的默认行为似乎偏离了线性时间。
将数据切割成更小的部分,我得到以下性能(在每个 LOAD 之间删除表)
全部为:已删除:0 跳过:0 警告:0
5000 行受影响的记录:5000 4.852 秒
10000 行受影响的记录:10000 20.670 秒
15000 行受影响的记录:15000 80.294 秒
20000 行受影响的记录:20000 202.474 秒
XML 格式正确。我试过了: 设置 FOREIGN_KEY_CHECKS=0; SET UNIQUE_CHECKS=0;
我可以做些什么来在合理的时间内加载它而不涉及将它切成十几块?
【问题讨论】:
-
请显示您用于加载数据的代码
-
你在插入数据的表上定义了哪些索引?
-
@Sebas:见
LOAD XML。 -
使用测试;删除表临床研究;创建表临床研究(id INT(4)NOT NULL AUTO_INCREMENT PRIMARY KEY,required_header_download_date VARCHAR(160)NULL,required_header_link_text VARCHAR(160)NULL,required_header_url VARCHAR(160)NULL,id_info_org_study_id VARCHAR(160)NULL,id_info_secondary_id VARCHAR(160) id_info_nct_id VARCHAR(160) NULL, brief_title VARCHAR(500) NULL, ...截断以满足字符限制...);
-
显示警告;设置 FOREIGN_KEY_CHECKS=0; SET UNIQUE_CHECKS=0;加载 XML 本地 INFILE 'C:\\Users\\212308962\\Documents\\Projects\\ClinicalTrials_FDA_gov\\ct_fda_2013_01_07_search_result\\all_parse.out' INTO TABLE Clinical_study ROWS IDENTIFIED by '
';
标签: mysql xml performance