日期:2014-05-16  浏览次数:20690 次

mysql插入1亿条数据要多长时间?
@Test

    public void insert1000Data(){

       try {

           String sql = "insert into usersss(name,descn)values(' 很郁闷 ',' 嘻嘻哈哈好嘻嘻哈哈好 ')" ;

           conn .setAutoCommit( false );

           long start = System.currentTimeMillis ();

           for ( int x=0;x<10000;x++){

              Statement stmt = conn .createStatement();

              for ( int i=0;i<10000;i++){

                  stmt.execute(sql);

              }

              conn .commit();

           }

          

           System. out .println(System.currentTimeMillis ()-start);

        } catch (SQLException e) {

           e.printStackTrace();

       }

    } ?

?

Create table usersss(

id int primary key auto_increment,

name varchar(20),

descn varchar(20)

)

  
?

?

1 个多小时 插入了 26310000 条记录。

?

Select count(*) from usersss??? 耗时 33.7s

Select count(id) from usersss??? 耗时 33.3s

?

Delete from usersss?????????????? 耗时 6m 33s

?

?

本机配置:

Cup:T7500

内存: 3G

硬盘: 160G 5400r/m

?

软件环境:

Mysql: Server version: 5.0.41-community-nt MySQL Community Edition (GPL)

Windows XP 32 sp3

?

整个执行过程中 cup 占用 55% 左右, javaw 占用 18% 左右, mysql-nt.exe 占用 20% 左右。

插入时其他程序可正常运行,相互感觉没有影响速度。

26310000 条记录占用磁盘空间 2 个多 G delete 掉后释放了 1 G 的空间。(为什么还有 1 个多 G 不给释放?)

1 楼 yisafe 2009-06-28  
很有趣的实验,没玩过。