MySQL数据库使用技巧

  • ‘INSERT INTO TABLE1 SELECT * FROM TABLE2’语句复制表数据

直接在MYSQL服务器上使用命令行的方式执行sql语句。执行时间随着数据表的记录数而增加。

数据表记录数(执行前) 插入记录数 执行时间(sec)
0 2125 0.96
2125 6120 0.74
8245 20683 0.41
28928 53720 0.96
82648 60535 1.18
143183 78415 1.39
221598 128712 2.60
350310 162357 2.24
512667 180198 3.51
692865 203133 2.86
895998 231714 5.33
1127712 242666 6.09
1370378 262945 6.07
1633323 285267 6.70
1918590 288709 10.50
2207299 268026 6.13
2475325 301929 6.66
2777254 337573 11.04
3114827 352130 16.11
3466957 404052 17.09
3871009 476917 22.26
4347926 525717 22.40
4873643 524711 35.07
5398354 531210 133.57
5929564 532161 143.44
6461725 600441 170.05
7062166 697444 162.95
7759610 386163 54.39
  • ‘INSERT INTO TABLE1 (Columns) SELECT * FROM TABLE2’语句解决删除组合主键问题。

table2的逐渐是(key1, key2)组合主键,希望去掉这种组合主键的方式,增加一个自增的int类型的id。可以通过下面语句解决问题。

1
2

insert into table1 (NULL, col1, col2, ..., colN) select * from table2

在我的操作中,执行结果如下:

1
2

Query OK, 8520140 rows affected (2 min 30.92 sec)
给世界留下最美好的财富,感谢您支持并鼓励我继续创作!