在程序开发中,往数据库中追加数据的话,一般有以下的3中语法。
1、insert into table_name values(xxxx,xxxx,xxx,xxx);
2、insert into table_name select xxx,xxx,xxx from table_b where xxxx;
3、insert into table_name values(xxxx,xxxx,xxx,xxx),(xxxx,xxxx,xxx,xxx),(xxxx,xxxx,xxx,xxx),(xxxx,xxxx,xxx,xxx),(xxxx,xxxx,xxx,xxx);
mysql,postgreSQL,Oracle,MS SQL Server等主流数据库都支持以上的语法。
为了能尽量减少和数据库进行交互,在程序中如果有大数据量进行操作的时候,尽量能使用第2,或第3种方法。
在第3种方法中,因为文件长度,写逻辑日志等的限制和影响,一般采用人工控制一定数据量后进行提交后,继续执行。
比如100件记录为单位进行提交。
第3种方法,在实践中,比如20000件数据的追加的话,还是有很大的改善的。 从最初的10几分钟,改善到了一,二十秒钟。
当然,如果是文本文件往数据库中进行导入的话,各个数据库实际上大都有提供一些专用的load语法。
最好是直接使用他们。