mysql代替concat_Mysql使用replace代替CONCAT 速度提高十几倍

之前的存储过程:

CREATE DEFINER=`root`@`%` PROCEDURE `load_nb`( v int,p2 int)

BEGIN

DECLARE rand_num INT;

DECLARE fri1 int(11) DEFAULT '';

DECLARE fri2 int(11) DEFAULT '';

DECLARE fri3 int(11) DEFAULT '';

DECLARE fri4 int(11) DEFAULT '';

DECLARE fri5 int(11) DEFAULT '';

DECLARE fri6 int(11) DEFAULT '';

DECLARE fri7 int(11) DEFAULT '';

DECLARE fri8 int(11) DEFAULT '';

DECLARE fri9 int(11) DEFAULT '';

DECLARE fri10 int(11) DEFAULT '';

DECLARE fri11 int(11) DEFAULT '';

DECLARE fri12 int(11) DEFAULT '';

DECLARE fri13 int(11) DEFAULT '';

DECLARE fri14 int(11) DEFAULT '';

DECLARE fri15 int(11) DEFAULT '';

while v < p2

do

set fri1 = v-1;

set fri2 = v-2;

set fri3 = v-3;

set fri4 = v-4;

set fri14 = v-14;

INSERT INTO `neighbor` (`ng_uid`, `ng_friends`) VALUES (

v , '{"0",":{"status":2,"tag":0,"mogic":1,"time":0}}');

/*

CONCAT( '{"',

fri1,'":{"status":2,"tag":0,"mogic":1,"time":1312870111,"help":1,"help_t":1312870118},"',

fri2,'":{"status":2,"tag":0,"mogic":1,"time":0},"',

fri3,'":{"status":1,"tag":0,"mogic":1,"time":1313137589,"help":0,"help_t":0},"',

fri4,'":{"status":2,"tag":0,"mogic":1,"time":0},"',

fri14,'":{"status":2,"tag":0,"mogic":1,"time":1313137566,"level":1}}')

);

*/

set v = v + 1;

end while;

END

改进后的存储过程:

CREATE DEFINER=`root`@`localhost` PROCEDURE `load_nb`( v int,p2 int)

BEGIN

DECLARE rand_num INT;

DECLARE fri1 int(11) DEFAULT '';

DECLARE fri2 int(11) DEFAULT '';

DECLARE fri3 int(11) DEFAULT '';

DECLARE fri4 int(11) DEFAULT '';

DECLARE sqlnb varchar(1000) DEFAULT '';

while v < p2

do

set fri1 = Cast(v-1 as char);

set fri2 = Cast(v-2 as char);

set fri3 = Cast(v-3 as char);

set fri4 = Cast(v-4 as char);

set sqlnb = '{"0":{"status":2,"tag":0,"mogic":1,"time":0},"@1@":{"status":2,"tag":0,"mogic":1,"time":0},"@2@":{"status":2,"tag":0,"mogic":1,"time":0},"@3@":{"status":2,"tag":0,"mogic":1,"time":0},"@4@":{"status":2,"tag":0,"mogic":1,"time":0}}';

set sqlnb = REPLACE(sqlnb,'@1@',fri1);

set sqlnb = REPLACE(sqlnb,'@2@',fri2);

set sqlnb = REPLACE(sqlnb,'@3@',fri3);

set sqlnb = REPLACE(sqlnb,'@4@',fri4);

INSERT INTO `neighbor` (`ng_uid`, `ng_friends`) VALUES (

v , sqlnb );

set v = v + 1;

end while;

END

标签:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值