Mysql 千万数据快速导入

最近碰到个项目,需要 千万条数据入库的问题,有原本的 类 csv 文件导入,

统计了下  数据行大概有 1400W 行之多

 

二话不说, 建表,直接 load

 

LOAD DATA LOCAL INFILE '/data/data.csv' INTO TABLE pk_book_price CHARACTER SET utf8  FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (`no`,`name`,`price`,`ranking`);

照理说 这种方式 应该是非常快的, 可导入完成还是活生生地耗费了接近3个多小时。

后来经过搜集各方资料查证,终于找到还算靠谱的解决方案:

1、建表,但除去所有索引。

2、 依然 load data local infile 方式导入。

3、 数据导入完成后 再进行索引。

 

依照此过程下来,数据导入 花费差不多 5分钟左右,  索引重建在半小时左右,整个40分钟内完成。还算能接受了。

因此表只需满足 按照no查询即可,没有涉及 其他复杂sql,也无数据增量,只有简单key-value查询。所以没有作水平,垂直,分库 等操作,只建索引已经达到性能要求。

其他,不再多述。

有更好方法,请分享之。

 

转载于:https://www.cnblogs.com/taozi32/p/5705807.html

MySQL导入千万数据可以使用多种方法,以下是两种常用的方法: 1. 使用MySQL自带的导入工具:MySQL提供了多个导入工具,如`mysql`命令行工具和`LOAD DATA INFILE`语句。你可以使用这些工具将数据从文件导入MySQL数据库中。具体步骤如下: - 将数据保存为文本文件,每行代表一条记录。 - 使用`mysql`命令行工具登录到MySQL数据库。 - 创建目标表,确保表结构与数据文件中的数据一致。 - 使用`LOAD DATA INFILE`语句将数据文件导入到目标表中。 例如,假设你有一个名为`data.txt`的数据文件,其中包含千万条记录,你可以使用以下命令将数据导入MySQL数据库中: ```shell mysql -u username -p password -h hostname -P port dbname LOAD DATA INFILE '/path/to/data.txt' INTO TABLE tablename; ``` 2. 使用第三方工具:除了MySQL自带的导入工具,还有一些第三方工具可以帮助你快速导入千万数据。例如,`mysqldump`工具可以将数据导出为SQL文件,然后使用`mysql`命令行工具将SQL文件导入到目标数据库中。另外,一些ETL工具(如Talend、Pentaho)也提供了数据导入功能,可以更加灵活地处理大数据量的导入。 请注意,导入千万数据可能需要较长的时间和较大的系统资源。为了提高导入速度,你可以考虑以下几点: - 使用合适的硬件设备和网络环境,确保数据库服务器具有足够的计算和存储资源。 - 对数据文件进行预处理,如拆分成多个小文件,以便并行导入。 - 调整MySQL服务器的配置参数,如`innodb_buffer_pool_size`、`innodb_log_file_size`等,以优化导入性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值