infobright 是 采用列存储引擎, 不须要索引、主键,性能很高, 亿级别数据 第一次查单挑数据耗时 1.6 秒。html
load data infile "/opt/sm_1.log" into table user_register fields terminated by '\t'
不过数据量大的状况下,不免有部分数据有问题,以防导入出错,先设置 忽略错误条数 或 忽略百分比mysql
/** when the number of rows rejected reaches 10, abort process **/ set @BH_REJECT_FILE_PATH = '/tmp/reject_file'; set @BH_ABORT_ON_COUNT = 10; # BH_ABORT_ON_COUNT 设定为 -1 的话,表示永不忽略。
也能够设置 BH_ABORT_ON_THRESHOLD 选项,该选项表示有最多多少百分比的数据容许被忽略,所以该选项的值是小数格式,例如 BH_ABORT_ON_THRESHOLD = 0.03(表示3%)linux
split -l 30000000 sm_tmp.log sm_last_month_login_
以上是按 3千万 行一个文件切割,新文件名字为 sm_last_month_login_ + aa,ab,ac 以此类推
sql
字符串不要被 "" 包围数据库
select * from user_register into outfile "/tmp/sm.log" fields terminated by '\t' enclosed by ‘NULL’ escaped by ‘\\’ ;
字符串两边加 引号 “”性能
select * from user_register into outfile "/tmp/sm.log" fields terminated by '\t' enclosed by ‘“’ escaped by ‘\\’ ;
ib loader 导入模式容错性差,我 导入几个 5g 的数据,有些文件能导入,有些始终导入不了,也不报错,卡在那不动了。
后来 换成 mysql 导入模式 成功了.net
-- 使用IB loader来导入CSV格式的变量定长文本 set @bh_dataformat = 'txt_variable'; -- 二进制文件 set @bh_dataformat = 'binary'; -- 使用mysql loader set @bh_dataformat = 'mysql';