当前位置:首页 >域名 >效率提升16800倍的连续整数生成方法 正文

效率提升16800倍的连续整数生成方法

来源:益强资讯优选   作者:应用开发   时间:2025-11-04 09:34:49

很多时候需要用到连续的效率id进行数据对比,如判断是提升否连续等问题。那么,连续生成连续整数的整数方式有多种,首先容易想到的生成是逐步循环,如果想生成1kw条记录,效率则需要循环1kw次进行插入,提升那么有没有其他方式呢,连续效率相对于逐步加一有多少提升呢。整数带此疑问,云南idc服务商生成我们进行一番测试。效率

提前创建一张存放记录的提升表。

复制CREATE TABLE nums(id INT);1. 1、连续使用逐步+1递增的整数循环方式 复制DELIMITER $$CREATE PROCEDURE sp_createNum1 (cnt INT

)

BEGIN DECLARE i INT DEFAULT 1

;

TRUNCATE TABLE nums ;WHILE i <= cnt DO BEGIN INSERT INTO nums SELECT i

;

SET i = i+1

;

END

;

END WHILE

;

END $$DELIMITER ;1.2.3.4.5.6.7.8.9.10.11.12.

生成20W数据用时达到14min,不是一般的慢。

2、生成 二的N次方法插入

此方法借鉴于姜老师的书上,不过对此进行了改造,解决输入值与最终获得的网站模板记录不一致的情况。

复制DELIMITER $$CREATE PROCEDURE `sp_createNum`(cnt INT

)

BEGIN DECLARE i INT DEFAULT 1

;

TRUNCATE TABLE nums

;

INSERT INTO nums SELECT i

;

WHILE i < cnt DO BEGIN INSERT INTO nums SELECT id + i FROM nums WHERE id + i<=cnt

;

SET i = i*2

;

END

;

END WHILE

;

END$$DELIMITER ;1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.

相同的数据库下,本次只需要0.05s,感兴趣的小伙伴可以亲自测一下。

Tips:

性能提升的原因在于方法1需要执行20W次insert,而方法2是按照2的指数级插入,20W数据只需要不到20次的插入即可完成。

云服务器

标签:

责任编辑:域名