国家药品监督管理局医疗器械唯一标识管理信息批量导入mysql工具
安装与配置
安装Python依赖包
pip install -r requirements.txt
配置数据库连接参数 编辑config.py
文件设置数据库连接信息,或通过环境变量配置:
export DB_HOST=localhost
export DB_PORT=3306
export DB_USER=root
export DB_PASSWORD=yourpassword
export DB_NAME=udi_database
创建目标数据库
CREATE DATABASE udi_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
数据导入流程
修复XML文件格式问题
python fix_xml_files.py
执行数据导入
python run_import.py
数据库优化
创建查询索引(必需操作)
USE udi_database;
CREATE INDEX idx_devices_device_id ON devices(device_id);
CREATE INDEX idx_packings_device_id ON packings(device_id);
CREATE INDEX idx_contacts_device_id ON contacts(device_id);
验证索引状态
SHOW INDEX FROM devices;
批量导入优化
临时禁用索引加速导入
ALTER TABLE devices DISABLE KEYS;
ALTER TABLE packings DISABLE KEYS;
导入完成后重建索引
ALTER TABLE devices ENABLE KEYS;
ALTER TABLE packings ENABLE KEYS;
性能注意事项
- UTF-8编码的XML文件才能确保正确解析
- 单文件超过100MB建议拆分处理
- 导入期间避免执行其他数据库操作
- 完成导入后立即建立索引可提升10倍以上查询性能
故障排查
检查日志文件
tail -f import_xml.log
验证数据完整性
SELECT COUNT(*) FROM devices;
SELECT COUNT(DISTINCT device_id) FROM devices;
链接: https://pan.baidu.com/s/1WiQI3MyNs_XHfeoamTFsdg 提取码: h1k1