mysql 查询的一般思路

能用单表优先用单表,即便是需要用group by、order by、limit等,效率一般也比多表高

不能用单表时优先用连接,连接是SQL中非常强大的用法,小表驱动大表+建立合适索引+合理运用连接条件,基本上连接可以解决绝大部分问题。但join级数不宜过多,毕竟是一个接近指数级增长的关联效果

能不用子查询、笛卡尔积尽量不用,虽然很多情况下MySQL优化器会将其优化成连接方式的执行过程,但效率仍然难以保证

自定义变量在复杂SQL实现中会很有用,例如LeetCode中困难级别的数据库题目很多都需要借助自定义变量实现

如果MySQL版本允许,某些带聚合功能的查询需求应用窗口函数是一个最优选择。除了经典的获取3种排名信息,还有聚合函数、向前向后取值、百分位等

相关推荐
岁岁岁平安15 分钟前
python mysql-connector、PyMySQL基础
python·mysql·pymysql
码农阿豪20 分钟前
从权限混沌到安全有序:金仓数据库的权限隔离如何超越MySQL
数据库·mysql·安全
不剪发的Tony老师44 分钟前
SQL Schema Compare:一款免费开源的数据库结构比较和同步工具
数据库
寒秋丶1 小时前
Milvus:集合(Collections)操作详解(三)
数据库·人工智能·python·ai·ai编程·milvus·向量数据库
寒秋丶1 小时前
Milvus:Schema详解(四)
数据库·人工智能·python·ai·ai编程·milvus·向量数据库
kyle~1 小时前
CPU调度---协程
java·linux·服务器·数据库·c++20
IDOlaoluo1 小时前
SQL Server 2017 Developer 中文版安装教程(64位 ISO 文件详细步骤)
服务器·数据库·负载均衡
一只游鱼2 小时前
Springboot+BannerBanner(启动横幅)
java·开发语言·数据库
散峰而望3 小时前
Dev-C++一些问题的处理
c语言·开发语言·数据库·c++·编辑器
Elieal3 小时前
Spring 框架IOC和AOP
java·数据库·spring