首页 > 数据库 >写sql的几个要点

写sql的几个要点

时间:2024-12-24 15:31:13浏览次数:5  
标签:运算 结果 几个 数据库 接口 sql 要点 执行

sql是程序员必备的技能,现在很多框架帮助你完成了与数据库对接,自动生成了sql。但往往生成的sql质量不高。我举几个例子。

第一、很多人在接口代码中循环访问数据库,结果自己都不知道会有多少个sql被执行,导致接口运行缓慢。很多时候是可以一条sql完成的工作。

第二、很多人在写sql的时候,就一直用left join这样关联下去,最后来个where。这样导致sql执行中涉及到结果集太大,导致接口运行缓慢。

数据库是以集合运算为理论基础的,所以不要试图用几个大的结果集进行运算,应该优先缩小数规模,这就是局部性原理。

说的通俗一些,就是当你写sql语句的时候,先缩小中间结果集,在用小结果集进行连接运算。

我们sql语句执行之前,你就应该知道执行出来结果是什么样子。如果不知道,那就是sql能力不足,需要继续修炼。

标签:运算,结果,几个,数据库,接口,sql,要点,执行
From: https://blog.csdn.net/weixin_42205118/article/details/144695376

相关文章

  • 基于 Spring Boot、MyBatis Plus、MySQL、HTML、CSS、JavaScript、Vue.js、Redis 与 S
    1.项目概述1.1项目目标为学生提供个性化课程推荐,助力高效选课。构建师生交流社区,促进课程相关交流。实现课程与用户信息的高效管理。1.2功能概述用户管理:包括注册、登录、信息修改、角色管理。课程管理:课程发布、查询、修改、删除、选课操作、评价与推荐。交流社区:课......
  • SQLMAP注入之MySQL注入总结
    SQLMAP注入之MySQL注入总结简介sqlmap是一个开源的自动化SQL注入(SQLi)攻击和数据库接管工具,广泛应用于渗透测试、漏洞评估和安全研究。它旨在帮助安全研究人员和渗透测试人员发现和利用SQL注入漏洞,进行数据库接管、信息泄露和数据提取等操作。sqlmap提供了强大的功能,可以......
  • 2024年度开源低代码大排名!这几个遥遥领先!
    近年来,低代码及无代码平台越来越多,数量不断攀升。在众多此类平台中,开源的低代码与无代码平台脱颖而出,每一个平台均具备独一无二的优势、特定的适用场景以及专属的用户群体。下面让我们来看看都有哪些优秀的平台吧。JeecgBoot特点:JeecgBoot是一款基于BPM的低代码平台!前后端分......
  • 免费送源码:Java+SpringBoot+MySQL SpringBoot会务管理系统 计算机毕业设计原创定制
    SpringBoot会务管理系统摘 要随着计算机技术的发展,特别是计算机网络技术与数据库技术的发展,使用人们的生活与工作方式发生了很大的改观。本课题研究的会务管理系统,主要功能模块包括用户管理,会议信息,会议签到,请假管理,评分记录,听会感受,意见箱等,采取面对对象的开发模式进行......
  • mysql之多表查询
    一、多表关系   概述:在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务直接相互关联,所以各个表结构之间也存在着各种关系,基本上分为三种:        一对多(多对一)        多对多       ......
  • SQL 实战:窗口函数的妙用 – 分析排名与分组聚合
    在复杂的数据分析和查询场景中,SQL窗口函数(WindowFunctions)是提升性能和代码可读性的重要工具。窗口函数可以轻松实现排名、分组聚合、滑动平均等复杂计算,避免使用嵌套子查询或冗余的多次表扫描。本文将通过实战案例,深入剖析窗口函数的应用场景,重点讲解如何进行排名和分组......
  • Ingress-Nginx Annotations 指南:配置要点全方面解读(上)
    文章目录1.Canary(金丝雀)2.Rewrite(重写)3.SessionAffinity(会话亲和性)4.Cookieaffinity5.Authentication6.CustomNGINXupstreamhashing7.自定义NGINX负载均衡8.自定义NGINX上游虚拟主机9.ClientCertificateAuthentication(客户端证书认证)10.BackendCertificateAut......
  • Java 实战项目:Spring Boot + MyBatis Plus + MySQL + Shiro + Thymeleaf 赋能仓库管理
    1.项目概述本仓库管理系统旨在实现对仓库中商品、供应商、客户、员工、权限、日志等信息的有效管理,提升仓库运营效率和管理水平。系统主要功能包括基础数据管理、进货管理、销售管理、库存管理、系统管理等。2.系统架构2.1技术选型后端:SpringBoot+MyBatisPlus+MySQL......
  • elasticsearch修改Ik分词器源码实现基于MySQL更新分词
    本文主要记录如何修改Ik分词器源码来实现基于MySQL数据库更新分词,所有步骤均为本人实际操作验证。如果你也刚好刷到这篇文章,希望对你有所帮助。使用过Ik分词器的应该都知道,它提供了三种配置热词词库的方式:Ik内置词库Ik外置静态词库Ik远程词库具体可以去看Ik的配置文件,这里不......
  • mysql 分区总结
    初稿摘录,后续会按自己经验更新:https://blog.csdn.net/weixin_42507868/article/details/113294679四种常见的分区类型: RANGE分区:最为常用,基于属于一个给定连续区间的列值,把多行分配给分区。最常见的是基于时间字段。LIST分区:LIST分区和RANGE分区类似,区别在于LIST是枚举值列表......