首页 > 数据库 >SQL查询:优化注意事项

SQL查询:优化注意事项

时间:2023-04-26 10:15:34浏览次数:39  
标签:将排 LAST EXISTS SQL NULLS 适合 查询 注意事项 null

DISTINCT:过滤掉多余的重复记录只保留一条,效率低;和ORDER BY结合使用可以提高效率;可以用GROUP BY替代。

IN与EXISTS : IN适合指定常量列表,EXISTS适合用于判断在另一张表中是否存在指定值。IN适合内外表都很大的情况,EXISTS适合外表结果集很小的情况;NOT IN用(外连接+判断为空)方案代替。

LIKE:结合‘%%’用于模糊匹配,不以%开头,效率更高。

 

NULLS FIRST/LAST:用于排序,NULLS FIRST表示null值的记录将排在最前,NULLS LAST表示null值的记录将排在最后。

 

标签:将排,LAST,EXISTS,SQL,NULLS,适合,查询,注意事项,null
From: https://www.cnblogs.com/Thenext/p/17354784.html

相关文章

  • [SQL Server 2008R2] 有关于判断表、字段、存过等元素是否存在相关SQL写法
    表相关普通表查询普通表是否存在可以使用object_id函数,下面的例子是查询表“t_test”是否存在之后从而进行其他的DLL操作:ifobject_id('t_test')isnotnullbegin--如果表存在这段里面写相关逻辑select1end 临时表临时表同样可以用object_id但......
  • MySQL数据类型
     DB哥MySQL高级教程-系统学习MySQL共149课时关注微信公众号免费学:【DB哥】文末有MySQL高级课程目录1、MySQL数据类型MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 1.2、mysql中编码和字符在mysql中,一个中文汉字所占的字节数与编码格式有......
  • MySQL索引详解
     DB哥MySQL高级教程-系统学习MySQL共149课时加我微信公众号免费学:DB哥文末有MySQL高级课程目录前言因为现在使用的mysql默认存储引擎是Innodb,所以本篇文章重点讲述Innodb下的索引,顺带简单讲述其他引擎。希望小伙伴们能通过这片文章对mysql的索引有更加清晰的认识,废话不多......
  • mybatis where标签动态sql问题
    使用where标签注意事项:where标签只会去掉第一个多出来的and和or,使用where标签时要把and放到前面这种情况下生成的SQL更干净,更贴切,不会在任何情况下都有where1=1这样的条件。<selectid="search"resultType="com.example.springweb2.pojo.Member"> selectid,name,a......
  • 权限模型与建表及SQL语句编写
    权限模型RBAC权限模型​RBAC权限模型(Role-BasedAccessControl)即:基于角色的权限控制。这是目前最常被开发者使用也是相对易用、通用权限模型。 准备工作      菜单表实体类}  建表及SQL语句编......
  • SQL Server实现group_concat功能的详细实例
    目录一、实现二、原理分析2.1、FOR XML PATH的作用2.2、STUFF函数2.2.1、STUFF函数在本SQL的作用2.2.2、STUFF函数语法2.3、sql语分分析2.3.1、一个简单的group by2.3.2、在select语句后面加上子查询2.3.3、去掉子查询结果集的第一个分隔符总结一、实......
  • 监控自建MySQL慢查询日志并上报到企业微信集群
    shell脚本如下#!/bin/bash#设置企业微信机器人webhook地址和机器人名称WEBHOOK_URL="你的WEBHOOK_URL"BOT_NAME="MySQLSlowLogBot"#设置慢日志文件路径和记录已发送行数的文件路径LOG_FILE="/data/mysql/mysql-slow-log.log"SENT_LINE_FILE="/tmp/mysql-slow-log.sent......
  • oracle 最大并发数 会话数查询
    怎样查看oracle当前的连接数SQL>selectcount(*)fromv$session#当前的连接数SQL>Selectcount(*)fromv$sessionwherestatus='ACTIVE'#并发连接数SQL>selectvaluefromv$parameterwherename='processes'--数据库允许的最大连接数SQL>showparameterpro......
  • mysql基础 -- 单表练习
    droptableifexistsemp;createtableemp(empnoint,enamevarchar(50),jobvarchar(50),mgrint,hiredatedate,saldecimal(7,2),commdecimal(7,2),deptnoint)engine=innodbdefaultcharset=utf8;INSERTINTOempVALUES(7369,'SMITH','CL......
  • 【Azure 应用服务】启用 Managed Identity 登录 SQL Server 报错 Managed Identity au
    问题描述在AppService中启用Identity后,使用系统自动生成Identity。使用如下代码连接数据库SQLServer:SQLServerDataSourcedataSource=newSQLServerDataSource();dataSource.setServerName("yoursqlservername.database.chinacloudapi.cn");//Replacewit......