BEGIN #Routine body goes here... DECLARE i INT DEFAULT 0; set i=1; WHILE i<10000 DO INSERT INTO demo_type(code,NAME) VALUES('你好','nnihao'); set i=i+1; END WHILE; END写的sql脚本。里面还有个id是自增字段。
通过workbench,查看配置文件 set audo commit 没有开。也就是默认不是自动提交的。
这不是1w条吗 怎么标题写的150条 另外duration也不是6秒啊
我是把其中的复制出来直接,在查询中执行的。 执行了150条。 也就是这样的 explain INSERT INTO demo_type(code,NAME) VALUES('你好','nnihao'); INSERT INTO demo_type(code,NAME) VALUES('你好','nnihao'); INSERT INTO demo_type(code,NAME) VALUES('你好','nnihao'); INSERT INTO demo_type(code,NAME) VALUES('你好','nnihao');
应该是每次的自动commit的问题。 如果把表的引擎设置为innoDB,就可以使用事务来设置自动提交的问题。 BEGIN #Routine body goes here... DECLARE i INT DEFAULT 0; set i=1; START TRANSACTION; WHILE i<10000 DO INSERT INTO demo_type(code,NAME) VALUES('你好','nnihao'); set i=i+1; END WHILE; COMMIT; END
#Routine body goes here...
DECLARE i INT DEFAULT 0;
set i=1;
WHILE i<10000 DO
INSERT INTO demo_type(code,NAME) VALUES('你好','nnihao');
set i=i+1;
END WHILE;
END写的sql脚本。里面还有个id是自增字段。
set audo commit 没有开。也就是默认不是自动提交的。
执行了150条。
也就是这样的
explain
INSERT INTO demo_type(code,NAME) VALUES('你好','nnihao');
INSERT INTO demo_type(code,NAME) VALUES('你好','nnihao');
INSERT INTO demo_type(code,NAME) VALUES('你好','nnihao');
INSERT INTO demo_type(code,NAME) VALUES('你好','nnihao');
如果把表的引擎设置为innoDB,就可以使用事务来设置自动提交的问题。
BEGIN
#Routine body goes here...
DECLARE i INT DEFAULT 0;
set i=1;
START TRANSACTION;
WHILE i<10000 DO
INSERT INTO demo_type(code,NAME) VALUES('你好','nnihao');
set i=i+1;
END WHILE;
COMMIT;
END