mysql 查询的一般思路

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

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

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

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

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

相关推荐
x***J3481 小时前
SQL视图使用
数据库·sql
cipher1 小时前
删库之夜·Ω诡计
数据库·程序员
好记忆不如烂笔头abc1 小时前
DBMS_RESOURCE_MANAGER.CALIBRATE_IO测试oracle的iops和延迟
数据库·oracle
HitpointNetSuite1 小时前
生物医药企业ERP系统比较:为什么选择Oracle NetSuite?
数据库·oracle·netsuite·erp·hitpointcloud
好记忆不如烂笔头abc2 小时前
Oracle ORION模拟Database负载测试存储性能
数据库·oracle
cyber_两只龙宝2 小时前
mysql实战项目:keepalived高可用双主架构集群+数据监控(附解析和命令)
linux·运维·mysql·云原生·架构·集群
xdpcxq10292 小时前
使用.NET 8+ 与飞书API构建同步服务
数据库·.net·飞书
c***72742 小时前
SpringBoot集成Flink-CDC,实现对数据库数据的监听
数据库·spring boot·flink
likuolei2 小时前
Git 工作区、暂存区和版本库
数据库·git