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';