首页 > 数据库 > 数据库开发技术 > 效率提升16800倍的连续整数生成方法
CREATE TABLE nums(id INT);
DELIMITER $$CREATE PROCEDURE sp_createNum1 (cnt INT)BEGINDECLARE i INT DEFAULT 1 ;TRUNCATE TABLE nums ;WHILE i <= cnt DOBEGININSERT INTO nums SELECT i;SET i = i+1 ;END ;END WHILE ;END $$DELIMITER ;

DELIMITER $$CREATE PROCEDURE `sp_createNum`(cnt INT )BEGINDECLARE i INT DEFAULT 1;TRUNCATE TABLE nums;INSERT INTO nums SELECT i;WHILE i < cnt DOBEGININSERT INTO nums SELECT id + i FROM nums WHERE id + i<=cnt;SET i = i*2;END;END WHILE;END$$DELIMITER ;

Tips: 性能提升的原因在于方法1需要执行20W次insert,而方法2是按照2的指数级插入,20W数据只需要不到20次的插入即可完成。
想进一步沟通或想了解其他文章的同学可以关注我

精彩推荐:
原文作者:数据库干货铺;如有侵权,请联系管理员删除。