postgresql大数据写入性能如何提高问题
各位数据库优化高手们:
目前开发中遇到如下一个性能问题,无法提高性能,请高手指点多谢.
现在有对应四个表的csv文件,对应每个表的有7个csv文件,一共28个文件,
28个csv文件大小是16G。其中一个表的导入数据大概是2亿行记录。
采用posgresql 的 copy 命令将数据导入到posgresql 数据库中。
现在用java 写了一个程序,用线程池管理线程,同时起了28个线程,执行copy 命令。
运行上述程序的环境是 centos 内存16G cpu 12kenel 24线程,
硬盘的写速度是200M/秒
现在完成 上述导入任务的平均时间是1400秒,将近23分钟以上。
用iostat 命令发现io 使用率基本上都是100%,感觉性能瓶颈在io 上。
CPU的使用率也就20%.
客户实际的数据量应该是上述数据量的70 倍,那要将近27个小时
客户肯定不会接受的。
以前没有处理过这么大量的数据导入数据库,因为采用posgresql 的 copy 命令
已经是批量导入了,还有啥方法提高性能,希望高手指点。