插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例:
- 连接:(3)
- 发送查询给服务器:(2)
- 分析查询:(2)
- 插入记录:(1x记录大小)
- 插入索引:(1x索引)
- 关闭:(1)
- 这不考虑打开表的初始开销,每个并发运行的查询打开。
-
同时从同一个客户端插入很多行,使用含多个VALUE的INSERT语句同时插入几行。这比使用单行INSERT语句快(在某些情况下快几倍)。如果你正向一个非空表添加数据,可以调节bulk_insert_buffer_size变量,使数据插入更快。参见5.3.3节,“服务器系统变量”。适用于MyISAM
-
从不同的客户端插入很多行,能通过INSERT DELAYED语句加快速度。
- 适用于MyISAM、MEMORY和ARCHIVE存储引擎,不支持InnoDB
- MySQL 8.0开始已被废弃
-
INSERT、UPDATE和DELETE操作在MySQL中是很快的,通过为在一行中多于大约5次连续不断地插入或更新的操作加锁,可以获得更好的整体性能。如果在一行中进行多次插入,可以执行LOCK TABLES,随后立即执行UNLOCK TABLES(大约每1000行)以允许其它的线程访问表。这也会获得好的性能。
-
INSERT装载数据比LOAD DATA INFILE要慢得多,即使是使用上述的策略。
- 为了对LOAD DATA INFILE和INSERT在MyISAM表得到更快的速度,通过增加key_buffer_size系统变量来扩大 键高速缓冲区。
into oufile和load data infile
导出
MySQL使用into outfile语法导出数据时,只能导出数据文件到secure-file-priv指定的安全路径下~
查看安全路径命令mysql> show variables like '%secure%';
导出
select * from uav_info into outfile 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/uav_info.txt';
结果:
导入
load data infile ‘C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/uav_info.txt’ into table uav_info character set utf8;
参考https://blog.csdn.net/2401_87167780/article/details/142325506