mysql 查询的一般思路

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

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

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

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

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

相关推荐
小白教程8 分钟前
Python连接MySQL数据库图文教程,Python连接数据库MySQL入门教程
数据库·python·mysql·python链接数据库·python链接mysql
hzulwy11 分钟前
mongodb的并发优化
数据库
new出对象31 分钟前
数据库增删查改sql语句
数据库·sql·oracle
m0_7482466143 分钟前
超详细:数据库的基本架构
数据库·架构
Themberfue1 小时前
SQL ①-数据库 || MySQL
数据库·sql·mysql·数据库系统·数据库管理系统
Good Note1 小时前
Golang的静态强类型、编译型、并发型
java·数据库·redis·后端·mysql·面试·golang
RisingWave中文开源社区2 小时前
一文详解物化视图(MV):定义、优势和用例
数据库·sql·数据分析
PingCAP2 小时前
TiDB Chat2Query 深度解析:我们如何打造一款更高效、准确的智能 SQL 生成工具?
数据库
想做富婆3 小时前
数仓搭建实操(传统数仓oracle):[构建数仓层次|ODS贴源层]
数据库·oracle·数仓
威哥爱编程3 小时前
如何解决 MySQL 数据库服务器 CPU 飙升的情况
数据库·mysql