SQL 调优最佳实践笔记

定义与重要性

  • SQL 调优:提高SQL性能,减少查询时间和资源消耗。
  • 目标:减少查询时间和扫描的数据行数。

基本原则

  1. 减少扫描行数:只扫描所需数据。
  2. 使用合适索引:确保WHERE条件命中最优索引。
  3. 合适的Join类型:根据表的大小和关联性选择。
  4. 选择合适的数据库:根据业务类型选择OLTP或OLAP。

DQL最佳实践(SELECT)

  • 避免多表JOIN,尤其是大数据量情况下。
  • 避免全表扫描,使用索引优化查询。
索引使用
  1. 全表扫描问题:无索引或索引不合适。
  2. 索引创建 :如CREATE INDEX idx_title ON books (title);
  3. 覆盖索引:包含查询所需所有列,减少回表查询。
  4. 主键点查:使用主键索引快速查询特定数据。

避免不必要的信息

  • 使用具体的列名代替SELECT *
  • 根据业务需求返回必要的列。

DML最佳实践(INSERT、UPDATE、DELETE)

  • 批量操作:使用单个SQL操作多行数据。
  • 删除数据
    • 使用WHERE条件指定删除范围。
    • 避免大批量删除,使用循环或限制条件。
    • 使用TRUNCATE代替DELETE清空表数据。

索引最佳实践

  1. 创建索引
    • 及时删除不需要的索引。
    • 考虑查询能否使用覆盖索引。
    • 选择过滤性好的列创建索引。
    • 组合索引时,将等值条件列放在前面。
  2. 使用索引
    • 确保索引在查询中被使用。
    • 遵循左前缀规则。
    • 避免使用!=NOT INLIKE '%...'等降低索引效率的条件。

总结

  • SQL调优是一个全面的优化过程,包括查询类SQL、索引优化等。
  • 针对不同的业务场景和数据库特性,采取相应的优化策略。
相关推荐
诚信定制8392 小时前
如何启动 Redis 服务:详细步骤指南
数据库·redis·缓存
AllData公司负责人2 小时前
数据同步平台|AIIData数据中台实现MySQL、Hive、Kafka 一键接入Doris
大数据·数据库·hive·mysql·kafka·实时同步
Edward111111112 小时前
一AI名词
java·开发语言·数据库·学习
hey you~2 小时前
400电话选型技术测评:一个开发视角的线路质量评估方案
运维·网络·数据库·400电话·企业通信
GLDbalala2 小时前
GPU PRO 5 - 4.5 Tiled Deferred Blending 笔记
笔记
Database_Cool_2 小时前
实时计数器/排行榜首选:阿里云 Tair 高并发数据结构实践
数据结构·数据库·阿里云·云计算
言乐62 小时前
Python视频相对亮度检测
数据库·python·计算机视觉·小程序·音视频
snow@li3 小时前
中台:中台即复用 / 理解企业架构中的能力抽象与分层共享 / 中台体系全景梳理 / 共性能力抽象、沉淀并复用
数据库
SelectDB技术团队3 小时前
AB 实验指标计算场景:Apache Doris / SelectDB 的技术能力、选型对比与实践
大数据·数据库·数据分析·apache·用户运营·apache doris·selectdb
snow@li3 小时前
数据库:B+ 树 / 数据库索引的底层支柱
数据库