MySQL 编程技巧(一)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

 工作中我们可能会建立类似的辅助表,并填充一定量的数据来完成工作。

         例如:生成一连串连续的数值。

         表:

         create table nums (a int unsigned not null primary key)engine=innodb;

         一般的做法是建立一个存储过程:

         delimiter $$ 
         create procedure pCreateNums (cnt int unsigned) 
         begin 
         declare s int unsigned default 1; 
         truncate table Nums; 
         while s <= cnt do 
         begin    
         insert into Nums select s; 
         set s=s+1; 
         end; 
         end while; 
        end$$ 
        delimiter ; 
        执行的时候: call   pCreateNums(200000);  此时这个程序insert 插入的次数是 2W次。

         下面看看优化后的存储过程:

         delimiter $$ 
         create procedure pFastCreateNums (cnt int unsigned) 
         begin 
        declare s int unsigned default 1;  
        insert into Nums select s; 
        while s*2 <=cnt do 
        begin 
         insert into Nums select a+s from Nums; 
         set s=s*2

        end; 
        end while; 
       END $$ 
       DELIMITER ; 

       执行: call  pFastCreateNums(200000); 该过程会先把1插入到表中,然后当 s*2<=cnt的成立的时候执行循环,每次迭代的时候会把当前所有行的值加上s再插入到表中。 即: 先插入1 , 然后是 2,   (3,4), (5,6,7,8),(9,10,11,12,13,14,15,16)以此类推。

       该过程执行的时候insert减少,只执行了17操作,最大值是2**17=131072,不过这个数已经够我们用啦。

                                                        参考:《MySQL技术内幕-SQL编程》
 

 






本文转自 位鹏飞 51CTO博客,原文链接:http://blog.51cto.com/weipengfei/961569,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
关系型数据库 MySQL 数据库
MySQL基本知识点
本章主要讲解了MySQL的基础知识,比如事务特性、事务隔离级别
109 1
|
6天前
|
存储 Oracle 关系型数据库
[MySQL]知识点
本文详细介绍了MySQL中int族和char族数据类型的特点、存储范围及使用建议,以及text、blob类型和内置字符处理函数。文章强调了数据类型选择的重要性,并提供了多个实例帮助理解。
17 0
[MySQL]知识点
|
SQL 关系型数据库 MySQL
MySQL零基础详细讲解(基础部分)
MySQL是一种关系型数据库管理系统(RDBMS),广泛用于储存和管理大量结构化数据。它是一个开源的数据库系统,由瑞典公司MySQL AB开发,后被Sun Microsystems收购,随后又被Oracle收购。MySQL以其高性能、稳定性和可靠性而闻名,并且易于使用和管理。它适用于各种规模的应用程序,从个人网站到大型企业级系统。MySQL使用SQL(Structured Query Language,结构化查询语言)来管理和查询数据,支持多个操作系统,并提供了许多客户端和编程语言的接口。无论是用于开发Web应用程序、商业应用程序还是其他类型的应用程序,MySQL都是一个常用的选择。
67 0
MySQL零基础详细讲解(基础部分)
|
存储 Oracle 关系型数据库
MYSQL知识点
MYSQL知识点
|
SQL 安全 关系型数据库
MySQL亲手编写万文复习(二)
MySQL亲手编写万文复习
83 0
MySQL亲手编写万文复习(二)
|
存储 SQL Oracle
如何学习MySQL,这几本书初学者必看!
《高性能MySQL》第四版发布后,收到了很多读者的反馈,其中关注最多的是作为一个初学者,应该如何能够较为系统的学习MySQL,从而应对日常工作或者获得更好的职业发展。于是和多个业内朋友讨论后,整理了一些MySQL学习的推荐资源,供初学者参考。本文分成几部分,包括业界专家的经验、推荐书籍、视频/音频资源、其他资源或者学习方式、MySQL学习沟通群、抽奖赠书等。对于不同基础的人,学习的重点和方法是各有不同的,所以本文会列举主要的MySQL数据库的学习资源和方法,读者需要结合自己的实际情况选择合适的方法。如果你有好的经验分享,可以在留言评论谈谈你的经验。
462 0
如何学习MySQL,这几本书初学者必看!
|
安全 关系型数据库 MySQL
MySQL亲手编写万文复习(三)
MySQL亲手编写万文复习
40 0
|
SQL 存储 机器学习/深度学习
MySQL亲手编写万文复习(一)
MySQL亲手编写万文复习
52 0
|
关系型数据库 MySQL
【MySQL】基础知识
【MySQL】基础知识
|
SQL 存储 前端开发