前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库查询优化方案

数据库查询优化方案

作者头像
BUG弄潮儿
发布2022-03-08 10:49:55
5620
发布2022-03-08 10:49:55
举报
文章被收录于专栏:JAVA乐园

查询耗时点

  • 解析SQL语句时间;
  • 磁盘存取(查询所用CPU时间);
  • 磁盘IO耗时;
  • 并行/分布式数据库的网络通信时间;
  • 其中,磁盘存取一般认为是耗时最多的点;

数据库层面的优化

  • 优化器设计(可将用户输入语句转换为等价的效率更高的执行语句);
  • 优化索引设计;
  • 优化查询算法:
    • 在等价的查询语句中,选择读磁盘最少的那个;
    • 对于简单的查询语句,可通过线性扫描和搜索引擎处理;
    • 对于复杂的查询,将它转换为简单查询的并和交;
    • 用外部归并排序算法对大于内存的关系进行排序;

用户层面的优化

  • 避免出现SELECT * FROM table 语句,要明确查出的字段;
  • 在一个SQL语句中,如果一个where条件过滤的数据库记录越多,定位越准确,则该where条件越应该前移;
  • 使用内层限定原则,在拼写SQL语句时,将查询条件分解、分类,并尽量在SQL语句的最里层进行限定,以减少数据的处理量;
  • 在判断有无符合条件的记录时建议不要用SELECT COUNT (*)和select top 1 语句;
  • 小心使用 IN 和 OR,需要注意In集合中的数据量,建议集合中的数据不超过200个;
  • 应绝对避免在order by子句中使用表达式;
  • <><> 代替,>>=代替,<<=代替,这样可以有效的利用索引;
  • 如果需要从关联表读数据,关联的表一般不要超过7个;
  • 在一个事务中,对同一个表的多个insert语句应该集中在一起执行;
代码语言:javascript
复制
source: //changsiyuan.github.io/2016/05/02/2016-5-2-database-search/
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BUG弄潮儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 查询耗时点
  • 数据库层面的优化
  • 用户层面的优化
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档