I believe, that my way is fastest: import CSV once by reading it in chunks and store it serialized with file:write_file(Path, erlang:term_to_binary(Rows, [compressed])) I've promised to fix benchmark and I remember about it.