现在有一个将近70G大小的文本文件,每行数据以逗号分割,基本上就是csv的格式,大约不到20亿条数据。
现在有一个难题,就是给这些数据入库MySQL。经过一百多个小时入库完成,但是没法用,因为量太大了,查询一次的时间是无法接受的,所以考虑到要分库或者分表,但是有一个问题就是,如何处理这么大的文本呢?想用GO写一个程序来完成分库分表入库的操作,但是首先要面临的问题就是如何打开这么大的文件?
* 1楼说的对,打开应该是没问题。读文件和处理才是花时间的。
* 如果有可能使用key-value的方式来存储和查询的话,可以使用[leveldb](https://github.com/google/leveldb)代替MySQL。
* key-value简单查询速度会快很多。
* Golang的leveldb的client可以使用: [levigo](https://github.com/jmhodges/levigo)
* CSV的记录读取然后插入到[leveldb](https://github.com/google/leveldb),可以参考<https://github.com/northbright/csv/tree/master/csv2db>
#2
更多评论