10W数据秒级插入,MySQL也可以!

AdminPi, 数据库, 2021-03-29 17:50:00

在内存缓存和NoSQL盛行的互联网时代,构建一款秒级插入十万数据的系统并不是什么难事;但今天我们说的是单表单库单节点的MySQL,秒级插入十万条数据。

没有太多高深的技术点,主要是使用到了事务。

创建数据表:

CREATE TABLE `testtest` (
  `v` int(10) UNSIGNED NOT NULL,
  `time` int(10) UNSIGNED NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

执行SQL语句:

begin;  -- 事务开始

insert into testtest (v,time) values  
(1,2),
(2,4),
(3,6),
(4,8),
(5,10),
(6,12),
(7,14),
(8,16),
(9,18),
(10,20),
.
.
.
(99991,199982),
(99992,199984),
(99993,199986),
(99994,199988),
(99995,199990),
(99996,199992),
(99997,199994),
(99998,199996),
(99999,199998),
(100000,200000);


-- 插入数据

commit;  -- 提交执行

执行结果:

MySQL 返回的查询结果为空 (即零行)。 (查询花费 0.0001 秒。)
begin
插入了 100000 行。 (查询花费 0.0675 秒。)
insert into testtest (v,time) values (1,2), (2,4), (3,6), (4,8), (5,10), (6,12), (7,14), (8,16), (9,18), (10,20), (11,22), (12,24), (13,26), (14,28), (15,30), (16,32), (17,34), (18,36), (19,38), (20,40), (21,42), (22,44), (23,46), (24,48), (25,50), (26,52), (27,54), (28,56), (29,58), (30,60), (31,62), (32,64), (33,66), (34,68), (35,70), (36,72), (37,74), (38,76), (39,78), (40,80), (41,82), (42,84), (43,86), (44,88), (45,90), (46,92), (47,94), (48,96), (49,98), (50,100), (51,102), (52,104), (53,106), (54,108), (55,110), (56,112), (57,114), (58,116), (59,118), (60,120), (61,122), (62,124), (63,126), (64,128), (65,130), (66,132), (67,134), (68,136), (69,138), (70,140), (71,142), (72,144), (73,146), (74,148), (75,150), (76,152), (77,154), (78,156), (79,158), (80,160), (81,162), (82,164), (83,166), (84,168), (85,170), (86,172), (87,174), (88,176), (89,178), (90,180), (91,182), (92,184), (93,186), (94,18[...]
MySQL 返回的查询结果为空 (即零行)。 (查询花费 0.0001 秒。)
commit

测试服务器配置:4核8G。

此文章于  2021-07-29 09:59:31  进行了更新!

© 2024