站长查询工具网站建设功能定位
news/
2025/10/4 10:26:10/
文章来源:
站长查询工具,网站建设功能定位,o2o电商平台系统,网站建设赚钱项目很多时候需要用到连续的id进行数据对比#xff0c;如判断是否连续等问题。那么#xff0c;生成连续整数的方式有多种#xff0c;首先容易想到的是逐步循环#xff0c;如果想生成1kw条记录#xff0c;则需要循环1kw次进行插入#xff0c;那么有没有其他方式呢#xff0c;…很多时候需要用到连续的id进行数据对比如判断是否连续等问题。那么生成连续整数的方式有多种首先容易想到的是逐步循环如果想生成1kw条记录则需要循环1kw次进行插入那么有没有其他方式呢效率相对于逐步加一有多少提升呢。带此疑问我们进行一番测试。 提前创建一张存放记录的表 CREATE TABLE nums(id INT); 1. 使用逐步1递增的循环方式 DELIMITER $$CREATE PROCEDURE sp_createNum1 (cnt INT)
BEGINDECLARE i INT DEFAULT 1 ;TRUNCATE TABLE nums ;WHILE i cnt DO BEGININSERT INTO nums SELECT i;SET i i1 ;END ;END WHILE ;
END $$DELIMITER ; 生成20W数据用时达到14min,不是一般的慢。 2. 二的N次方法插入 此方法借鉴于姜老师的书上不过对此进行了改造解决输入值与最终获得的记录不一致的情况。具体情况可以翻看姜老师的《MySQL技术内幕SQL编程》在此给姜老师再刷一波广告 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 icnt;SET i i*2;END;END WHILE;END$$DELIMITER ; 相同的数据库下本次只需要0.05s,感兴趣的小伙伴可以亲自测一下。 Tips: 性能提升的原因在于方法1需要执行20W次insert而方法2是按照2的指数级插入20W数据只需要不到20次的插入即可完成。 转载于:https://www.cnblogs.com/gjc592/p/9234075.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927019.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!