【问题标题】:how to speed data loading XML file into MySQL如何加快将 XML 文件加载到 MySQL 中的速度
【发布时间】: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


【解决方案1】:

尝试在加载之前删除索引,然后再重建它们。

【讨论】:

  • ALTER TABLE Clinical_study drop index id;产生错误代码:1091。Can't DROP 'id';检查列/键是否存在
猜你喜欢
  • 1970-01-01
  • 2020-09-02
  • 1970-01-01
  • 2019-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
相关资源
最近更新 更多