mysql插入存储的过程_mysql 插入存储过程

本文介绍了一种使用MySQL存储过程进行大批量数据插入的方法,并分析了当表中数据达到千万级别时对查询性能的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

、创建表:

CREATE TABLE IF NOT EXISTS `blog` (

`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,

`title` char(120) NOT NULL,

`content` text NOT NULL,

`date` datetime NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM  DEFAULT CHARSET=utf8  ;

2、创建存储过程

delimiter $$

create procedure batch_insert()

begin

DECLARE max int;

DECLARE rc int;

set max =10000000;

set rc =1;

loop: while rc

insert into blog (title,content,date) values(CONCAT('title hre',rc),concat('content here',rc),now());

set rc=rc+1;

end while loop;

end$$

delimiter ;

3、调用存储过程:

call batch_insert();

一张表数据超过千万级别,mysql查询性能严重下降!

set @@profiling=1;

select * from blog where title='title hre27' ;

show profiles;

+----------+------------+----------------------------------------------+ | Query_ID | Duration   | Query                                        | +----------+------------+----------------------------------------------+ |        1 | 5.75001775 | select * from blog where title='title hre27' | |       +----------+------------+----------------------------------------------+

MySQL 存储过程是一种预先编译好的 SQL 代码块,可以通过单个调用执行多个 SQL 语句。存储过程可以接收参数,可以使用条件、循环等语句实现复杂的业务逻辑。下面是 MySQL 存储过程的基本用法: 1. 创建存储过程 使用 CREATE PROCEDURE 语句创建存储过程,语法如下: ``` CREATE PROCEDURE procedure_name ([IN|OUT|INOUT] parameter_name data_type) BEGIN -- 存储过程的 SQL 语句 END; ``` 其中,procedure_name 为存储过程名,parameter_name 为参数名,data_type 为参数数据类型,可以是 MySQL 支持的任何数据类型。 2. 执行存储过程 使用 CALL 语句执行存储过程,语法如下: ``` CALL procedure_name(parameter_value); ``` 其中,procedure_name 为存储过程名,parameter_value 为参数值,可以是一个常量、变量或表达式。 3. 删除存储过程 使用 DROP PROCEDURE 语句删除存储过程,语法如下: ``` DROP PROCEDURE procedure_name; ``` 其中,procedure_name 为存储过程名。 4. 示例 下面是一个简单的 MySQL 存储过程示例,实现了对用户表的插入操作: ``` CREATE PROCEDURE insert_user(IN name VARCHAR(50), IN age INT, IN gender VARCHAR(10)) BEGIN INSERT INTO user(name, age, gender) VALUES(name, age, gender); END; CALL insert_user('张三', 20, '男'); ``` 该存储过程接收三个参数,分别为 name、age 和 gender,将这些参数插入到 user 表中。最后使用 CALL 语句调用该存储过程插入一条记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值