mysql更新10000条记录_数据库添加10000条数据

未使用事务之前

-- 调用数据库

use test;

-- 先检查要使用的表是否存在,存在就删除

DROP TABLE IF EXISTS `testtable`;

-- 创建数据表

CREATE TABLE `testtable` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`testname` varchar(32) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- 存储过程

delimiter $$

-- 如果存储过程存在,先删除

drop procedure if exists p1;

-- 创建

create procedure p1()

begin

-- 定义

declare i int;

declare user varchar(32);

-- 赋值

set i = 0;

set user = 'user';

-- 循环

while i < 10000 DO

-- CONCAT 字段拼接

insert into testtable(testname) values ( CONCAT( user , i));

set i = i + 1;

end while;

end$$

delimiter ;

-- 调用

call p1();

插入10000数据用时328秒

0f5081f4390d

image.png

0f5081f4390d

image.png

EXPLAIN SELECT * FROM testtable;

0f5081f4390d

image.png

type:表示MySQL在表中找到所需行的方式,或者叫访问类型,常见类型如下(从左到右,性能由差到好)

ALL index range ref eq_ref const,system NULL

ALL: 全表扫描

index: 索引全扫描

range:索引范围扫描

ref:使用非唯一索引扫描

eq_ref:使用唯一索引扫描

const,system:单表中最多只有一个匹配行

创建普通索引:

ALTER TABLE 表名 ADD INDEX index_remark (remark);

0f5081f4390d

image.png

使用事务之后插入100000条数据:

-- 调用数据库

use test;

-- 先检查要使用的表是否存在,存在就删除

DROP TABLE IF EXISTS `testtable`;

-- 创建数据表

CREATE TABLE `testtable` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`testname` varchar(32) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- 存储过程

delimiter $$

-- 如果存储过程存在,先删除

drop procedure if exists p1;

-- 创建

create procedure p1()

begin

-- 定义

declare i int;

declare user varchar(32);

-- 赋值

set i = 0;

set user = 'user';

-- 循环

start transaction;#手动开启事务

while i < 10000 DO

-- CONCAT 字段拼接

insert into testtable(testname) values ( CONCAT( user , i));

set i = i + 1;

end while;

commit; #提交

end$$

delimiter ;

-- 调用

call p1();

0f5081f4390d

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据库更新数据的方法有以下几种途径: 1. 使用UPDATE语句:通过UPDATE语句可以更新数据库表中的记录。该语句可以指定要更新的表、要更新的字段以及对应的新值,还可以添加WHERE子句来限定更新的范围。例如,可以使用以下语句更新Student表中学号为'20180203'的记录的姓名为'张静':UPDATE Student SET 姓名='张静' WHERE 学号='20180203'。 2. 使用INSERT INTO语句:虽然INSERT INTO语句主要用于插入新记录,但也可以用于更新已存在的记录。通过指定要更新的表、要更新的字段以及对应的新值,可以实现更新操作。例如,可以使用以下语句将学号为'20180203'的记录更新为('20180203','张静','女','2001-03-21','CS','电子商务'):INSERT INTO Student (学号, 姓名, 性别, 出生日期, 专业, 方向) VALUES ('20180203','张静','女','2001-03-21','CS','电子商务') ON DUPLICATE KEY UPDATE 姓名='张静'。 3. 使用存储过程:MySQL还支持使用存储过程来实现更新数据的操作。通过创建一个存储过程,并在其中编写更新数据的逻辑,可以实现复杂的更新操作。例如,可以编写一个存储过程,根据一定的更新Student表中的记录。使用存储过程的好处是可以将更新逻辑封装起来,提高代码的复用性和可维护性。 总结起来,MySQL数据库更新数据的方法包括使用UPDATE语句、INSERT INTO语句和存储过程。根据具体的需求和场景,选择合适的方法来更新数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值