Back

mysql - 大数据量下的操作相关 (4KW记录,32G) mysql huge data huge table big table import source restore

发布时间: 2019-03-23 10:59:00

如题

这个时候务必使用SSD硬盘。 

导出需要30分钟。 

导入需要至少1小时(google cloude), 3 小时(SSD), 4小时(SATA硬盘) 

所以,一次导入成功之后,可以copy mysql data_dir , 这样下次就直接复制磁盘就好了。 否则使用SQL恢复的话,4MB/s. 

删除: delete from where ...  ,大约一秒钟1W条。

这个帖子非常经典:https://stackoverflow.com/questions/812512/faster-way-to-delete-matching-rows

不能使用delete删除大数据,因为 在 inno db模式下,delete是需要回滚的, 每个delete操作,如果中途取消,都会完美恢复原来的记录。 而且就算你的delete执行完了, 数据库中的数据也会留下,直到某个 别的进程不再使用那条记录了,才会被删掉。 

解决办法: 参考:https://stackoverflow.com/a/834221/445908

mysql> create table orders_temp like orders;
Query OK, 0 rows affected (0.66 sec)

mysql> insert into orders_temp select * from orders where member_id != 19 ;
Query OK, 531 rows affected (1.66 sec)
Records: 531  Duplicates: 0  Warnings: 0

mysql> drop table orders;
Query OK, 0 rows affected (0.63 sec)

mysql> rename table orders_temp to orders;
Query OK, 0 rows affected (0.12 sec)

Back