您的位置:

mysql数据库大量造数据,mysql怎么批量造数据

本文目录一览:

shell 怎么造mysql 的大量数据

若要将大量的数据值插入到数据库的一个或多个表中,使用insert into语句来实现将是一项无聊的工作。

1、LOAD DATA通过读取本地文件系统上的文件,可以将大量数据添加到数据库中。

mysql LOAD DATA INFILE ‘datafile.txt’ INTO TABLE db2.table_name;

mysql LOAD DATA INFILE ‘datafile.txt’ INTO TABLE db2.table_name FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘”‘;

mysql load data infile “file.txt” into table table_name fields terminated by ‘\t’ (sid,name);

2、还有一个mysqlimport命令可以批量增加,mysqlimport直接从文件读取批量数据。它相当于LOAD DATA语句的一个接口。

mysqlimport可以自动生成一个LOAD DATA语句,该语句把filename.txt文件中的数据装入table_name表中。

mysqlimport根据文件名导入表名,即将文件名第一个圆点前的所有字符作为表名。例如,文件class.txt被装入class表中。

例如:

mysqlimport -L -uroot -proot db01 table_name.txt;

mysqlimport -local table_name filename.txt;

3、datafile.txt内容:

“1”,”a string”,”100.20″

“2”,”a string containing a , comma”,”102.20″

“3”,”a string containing a \” quote”,”102.20″

“4”,”a string containing a \”, quote and comma”,”102.20″

4、假如你有x表,导入了一个y表,将y表数据插入x表:

insert into x select * from y;

如何向mysql数据库中导入大批量数据?

导入时把生成索引给关掉,应该能快一点.

不要一边导入一边建立索引.

8G数据,应该也不那么慢了.

把sql语句文件读取出一部分看看,建表语句中,应当有建立索引的部分,删掉它!

只做建表和插入数据两件事.

还有,看看数据库有没有外键?

尽量在插入数据过程中去掉外键关联.

等数据插入完成之后再加索引和外键,应该能提高很多读写性能.

截取一部分数据,例如100Mb.

插入一下试试,可以预先对整体时间有一个预期.

还有,真的要弄台好点的电脑,或者去借一台,等把数据导入完成之后,把msyql的库文件直接复制出来放自己机器上跑就好.

emm..

再追加点信息,要先搞明白,sql原文件里,到底都执行了哪几类操作?

可能需要你用c之类写点小工具,或者别的什么语言,分块读取并处理文件.

8G..

嗯,还好.

现在内存都够大,否则你都没法直接用软件打开了.

只有8G也可以直接用软件打开看.

停掉索引真的可以大幅度加快插入数据的速度.

建议试一试!

MySQL数据库 写入大量数据如何实现

//最快的方法 10000记录 23MS

public static void insert() {  

        // 开时时间  

        Long begin = new Date().getTime();  

        // sql前缀  

        String prefix = "INSERT INTO tb_big_data (count, create_time, random) VALUES ";  

        try {  

            // 保存sql后缀  

            StringBuffer suffix = new StringBuffer();  

            // 设置事务为非自动提交  

            conn.setAutoCommit(false);  

            // Statement st = conn.createStatement();  

            // 比起st,pst会更好些  

            PreparedStatement pst = conn.prepareStatement("");  

            // 外层循环,总提交事务次数  

            for (int i = 1; i = 100; i++) {  

                // 第次提交步长  

                for (int j = 1; j = 10000; j++) {  

                    // 构建sql后缀  

                    suffix.append("(" + j * i + ", SYSDATE(), " + i * j  

                            * Math.random() + "),");  

                }  

                // 构建完整sql  

                String sql = prefix + suffix.substring(0, suffix.length() - 1);  

                // 添加执行sql  

                pst.addBatch(sql);  

                // 执行操作  

                pst.executeBatch();  

                // 提交事务  

                conn.commit();  

                // 清空上一次添加的数据  

                suffix = new StringBuffer();  

            }  

            // 头等连接  

            pst.close();  

            conn.close();  

        } catch (SQLException e) {  

            e.printStackTrace();  

        }  

        // 结束时间  

        Long end = new Date().getTime();  

        // 耗时  

        System.out.println("cast : " + (end - begin) / 1000 + " ms");  

    }