需要在数据库中根据product表中的自增id,如果存在则插入对应的数据到pageview表,数据有几万条
drop procedure if exists autoInsert;
create procedure autoInsert()
begin
declare i int;
declare j int;
set i=1;
while(i<40001) do
if exists(select auto_id from product where auto_id=i ) then
set j=i;
if (select count(game_id) from pageview where game_id=j)=0 then
insert into pageview(game_id,week_pv,last_week_pv,month_pv,total_pv,admin_time) values(i,100+i,50+i,500+i,2000+i,now());
end if;
end if;
set i=i+1;
end while;
end
(1)其中循环嵌套时,如果直接嵌套发现总是执行不成功,所以加上了set j = i;
(2)执行效率问题,由于数据量巨大,因此需要将表product和表pageview对应的字段都建立索引。
(3)if语句中选择的东西要保证是索引值,这样效率就会提升很多
最终插入4W条数据花费时间:
影响的数据栏: 1 //其中1并不是记录数
时间: 10.266ms
分享到:
相关推荐
做测试时,到mysql数据库循环插入千万条数据的java代码
mysql 批量插入测试数据 ,可判断条件插入数据,随心所遇插入,do where 循环
1、创建测试表 CREATE TABLE `mysql_genarate` ( `id` int(11) NOT NULL AUTO_...2、创建一个循环插入的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `test_two1`( ) BEGIN DECLARE i INT DEFAU
接下来,我们将为每个表创建一个对应的存储过程,用于实现循环插入数据的功能。 #### 1. 存储过程 - MyISAM ```sql DELIMITER @ CREATE PROCEDURE insert_isam(IN item INTEGER) BEGIN DECLARE counter INT; SET...
本文将详细介绍如何使用Shell脚本来在MySQL数据库中批量插入数据,这对于测试环境或者数据初始化场景非常有用。 首先,让我们分析一下给定的Shell脚本。这段脚本的主要目的是在名为`afs_test`的MySQL表中插入一系列...
MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...
在MySQL数据库中,数据插入效率是数据库性能优化的关键因素,特别是在大数据量的场景下。本文主要探讨了四种不同的数据插入方式及其效率差异。 1. 单条插入:这是最基本的方式,通过for循环逐条执行INSERT语句。...
你需要先创建存储过程,然后调用...存储过程可以通过循环批量插入数据,提高代码的重用性和可维护性。 这样的好处:逻辑封装:复杂的插入逻辑可以封装在存储过程内,易于管理。 灵活性:可以根据参数动态调整插入行为。
环境 vs2010 mysql5.0 系统(ibatisnet + mysql ) ibatisnet sql配置文件内置,数据库连接字段加密,dubug日志输出。 系统中已完成ibatisnet下的增删改查等...方便测试,压缩包里已提供一个mysql循环插入数据的函数。
其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4232009 > ...
循环插入: 代码如下: DECLARE @MyCounter INT SET @MyCounter = 0 /*设置变量*/ WHILE (@MyCounter < 2) /*设置循环次数*/ BEGIN WAITFOR DELAY ‘000:00:10’ /*延迟时间10秒*/ INSERT INTO time_by_day (time_...
通过使用JDBC,可以实现这些基本操作,例如在本文中,我们使用了insert into语句向mysql数据库中插入数据。 4. Java语言中的时间处理:在本文中,我们使用了SimpleDateFormat类来处理时间信息,例如获取当前时间的...
在MySQL中,大批量插入数据通常是为了提高效率和性能,避免频繁地建立和关闭数据库连接。以下是四种常用的方法,适用于不同的场景和需求。 **方法一:循环插入** 这是最基本的方法,适合数据量较小的情况。通过循环...
在C#.NET中批量插入大量数据到数据库是一个常见的任务,特别是在处理诸如从Excel文件导入数据等场景时。这里,我们将探讨如何使用C#.NET高效地完成这个任务,并提供一个简单的示例来说明整个过程。 首先,我们需要...
这个shell脚本的主要功能是向名为`dbname`的数据库中的`tablename`表中批量插入数据。脚本接受一个参数`$1`,即最大插入行数。它使用了一个while循环,循环次数根据传入的参数决定。 在循环内部,`mysql`命令用于...
这个脚本的目的就是读取`prov.csv`中的数据,并将其插入到MySQL数据库中的相应表中。脚本可能包含如下步骤: 1. 使用`cat`或`head`命令查看CSV文件内容。 2. 使用`awk`或`cut`命令处理CSV数据,提取出需要导入数据库...
批量脚本可能会用到`INSERT INTO`(插入数据)、`UPDATE`(更新数据)、`DELETE`(删除数据)、`CREATE TABLE`(创建表)、`ALTER TABLE`(修改表结构)等命令。 2. **事务处理**:在执行批量操作时,为了确保数据...
mysql 数据库已存储过程插入一千万条测试数据!利用项目即将上限需要,可以完全系统的测试项目性能!里面又完整的文档和各项说明:打开文档就可以实际操作。
// 循环插入数据 for (int i = 1; i ; i++) { info = "这条记录是第="; info += Integer.toString(i); str = "insert into test(id, txt) values(?, ?);"; PreparedStatement pstmt = con.prepareStatement...
在IT领域,尤其是在数据库操作与框架应用中,批量插入数据是一项常见且重要的需求。相比于单条插入,批量插入能够显著提升数据处理效率,减少数据库I/O操作,从而提高整体性能。本文将深入探讨如何利用MyBatis框架...