`
feiniao2029
  • 浏览: 21620 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql循环插入数据

阅读更多

需要在数据库中根据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 批量插入测试数据

    mysql 批量插入测试数据 ,可判断条件插入数据,随心所遇插入,do where 循环

    往mysql循环插入几千万条数据

    做测试时,到mysql数据库循环插入千万条数据的java代码

    mysql循环添加数据(存储详细)

    mysql循环添加数据(存储详细),mysql循环添加数据(存储详细)

    MySQL循环插入千万级数据

    1、创建测试表 CREATE TABLE `mysql_genarate` ( `id` int(11) NOT NULL AUTO_...2、创建一个循环插入的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `test_two1`( ) BEGIN DECLARE i INT DEFAU

    MySQL创建存储过程批量插入10万条数据

    MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...

    winfrom框架

    环境 vs2010 mysql5.0 系统(ibatisnet + mysql ) ibatisnet sql配置文件内置,数据库连接字段加密,dubug日志输出。 系统中已完成ibatisnet下的增删改查等...方便测试,压缩包里已提供一个mysql循环插入数据的函数。

    用shell脚本在mysql表中批量插入数据的方法

    主要介绍了用shell脚本在mysql表中批量插入数据的方法,需要的朋友可以参考下

    百万数据批量插入存储过程

    mysql 数据库已存储过程插入一千万条测试数据!利用项目即将上限需要,可以完全系统的测试项目性能!里面又完整的文档和各项说明:打开文档就可以实际操作。

    Node.js下向MySQL数据库插入批量数据的方法

    项目(nodejs)中需要一次性插入多笔数据到数据库,数据库是mysql的,由于循环插入的性能太差,就像使用批量插入的方法提高数据的插入性能。 批量插入的数据库的表结构如下: 1.数据库连接 var mysql = require('...

    mysql大批量插入数据的4种方法示例

    本文主要给大家介绍了关于mysql大批量插入数据的4种方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法一:循环插入 这个也是最普通的方式,如果数据量不是很大,可以使用,但是每次都要...

    MySql性能优化-通过使用XML将多次循环处理变为一次集合处理

    数据库批量操作有很多这样的应用场景,如批量通过选中的审请信息、批量插入采购单的采购清单信息等。一个公认的实事,即关系型数据库在结构化的集合处理方面表现优秀,而数据库与编程语言之间通常通过各种参数来进行...

    mysql数据插入效率比较

    1:for循环100次,一次次插入数据。连接一次插入100次,这样是最费时间的也是最费IO和连接的; 2:将100数据插入语句组成一个sql语句,然后连接一次,插入数据。这种费时比第一种要好。 3:使用事物,100次插入,...

    mysql 循环批量插入的实例代码详解

    测试时没有数据,便安装了一个MySql,建了张表,在建了个while循环批量插入10W条测试数据的时候,执行时间之长无法忍受,便查资料找批量插入优化方法,这里做个笔记。 数据结构 寻思着分页时标准列分主键列、索引列...

    MySQL中实现插入或更新操作(类似Oracle的merge语句)

    主要介绍了在MySQL中实现插入或更新操作(类似Oracle的merge语句)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    mysql中循环截取用户信息并插入到目标表对应的字段中

    操作目的:将各个用户对应的属性插入到目标表对应的字段中,last_update为数据更新日期; 传入参数i_player_detail ,里面存放多个用户的信息,每个用户的一组数据用分号隔开,每个用户的信息多个,比如 “用户id,...

    c#实现几种数据库的大数据批量插入

    主要介绍了c#实现几种数据库的大数据批量插入,主要包括SqlServer、Oracle、SQLite和MySQL,有兴趣的可以了解一下。

    ThinkPHP3.2框架使用addAll()批量插入数据的方法

    本文实例讲述了ThinkPHP3.2框架使用addAll()批量插入数据的方法。分享给大家供大家参考,具体如下: thinkphp中model类的addAll()方法可以将数据同时添加到数据库中. // 批量添加数据 (only MySQL) $user = M('user...

    KETTLE实现循环批量多表抽取添加字段

    KETTLE实现循环批量更新表添加字段,将kettle资源库抽取到另一个数据库中并输出抽取表单,(本文用的是MySQL)

    mysql中insert与select的嵌套使用解决组合字段插入问题

    如何在mysql从多个表中组合字段然后插入到一个新表中,通过一条sql语句实现。具体情形是:有三张表a、b、c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段。对于这种情况,我们可以使用如下的语句来...

Global site tag (gtag.js) - Google Analytics