偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

效率提升16800倍的連續(xù)整數(shù)生成方法

數(shù)據(jù)庫 其他數(shù)據(jù)庫
性能提升的原因在于方法1需要執(zhí)行20W次insert,而方法2是按照2的指數(shù)級插入,20W數(shù)據(jù)只需要不到20次的插入即可完成。

很多時候需要用到連續(xù)的id進行數(shù)據(jù)對比,如判斷是否連續(xù)等問題。那么,生成連續(xù)整數(shù)的方式有多種,首先容易想到的是逐步循環(huán),如果想生成1kw條記錄,則需要循環(huán)1kw次進行插入,那么有沒有其他方式呢,效率相對于逐步加一有多少提升呢。帶此疑問,我們進行一番測試。

提前創(chuàng)建一張存放記錄的表。

CREATE TABLE nums(id INT);

1、使用逐步+1遞增的循環(huán)方式

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 ;

生成20W數(shù)據(jù)用時達到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 ;

相同的數(shù)據(jù)庫下,本次只需要0.05s,感興趣的小伙伴可以親自測一下。

Tips:

性能提升的原因在于方法1需要執(zhí)行20W次insert,而方法2是按照2的指數(shù)級插入,20W數(shù)據(jù)只需要不到20次的插入即可完成。

責任編輯:姜華 來源: 今日頭條
相關推薦

2009-06-16 11:13:38

Javadoc生成方法Javadoc

2023-06-27 13:49:00

GPU通信RLHF

2013-02-22 09:36:32

ImpalaHadoop大數(shù)據(jù)Cloudera

2018-01-19 09:00:37

2022-10-28 15:16:52

檢測數(shù)據(jù)

2024-06-27 11:22:34

2023-12-01 15:54:44

2017-12-06 08:06:47

IBMGPU機器學習

2019-12-09 10:32:36

開源技術 趨勢

2022-12-13 08:45:01

3F傾聽模型

2012-11-21 17:35:21

Oracle技術嘉年華

2020-11-02 16:20:07

GuavaJava編程語言

2009-06-22 14:57:09

2022-05-10 09:40:26

運維游戲實踐

2024-04-01 13:08:24

唯一IDC#后端

2023-02-06 07:17:22

2020-10-12 19:03:40

Chrome功能瀏覽器

2025-05-26 04:00:00

2020-07-08 17:06:00

Python開發(fā)工具

2012-03-12 13:54:56

ASP.NET
點贊
收藏

51CTO技術棧公眾號