数据库查询调优

1、select子句

  在够用的情况下,可以只选带索引的列,速度会非常快

  不必要的情况下,只选出要查看的列,会提高速度。

2、from子句

  使用join时,可以直接join表,如果join子查询时,子查询生成的临时表是没有索引的,所以会引起速度很慢,直接join表可提高速度。

  根据不同情况使用不同的join,可以提高查询以及统计的速度

3、where子句

  where子句中的条件:

  如果需要排序,不管是否唯一,都添加btree类型的索引

  如果是唯一值,且不需要排序,则添加唯一hash索引

  如果不是唯一值,且不需要排序,且重复值不多的情况下,可以加hash索引

4、order by子句

  by的条件最好添加btree索引

  

时间: 2024-11-08 02:05:55

数据库查询调优的相关文章

mysql数据库性能调优总结积累

mysql数据库的调优大概可以分为四大块 0 架构调优 ---根据业务 读写分库分表   ---主从 读写分离 1 配置的调优 ---开启缓存查询  设置缓存大小 ---最大连接数设置 ---数据库引擎配置 myisam(读操作,查询快) Innodb(写操作,主库,支持事务,安全) 引擎配置 ---日志配置 2 表结构的调优 ----建立合适的索引(主键索引,唯一索引,普通索引,全文索引 myisam中用来检索文本)EXPLAIN SELECT命令那里往往可以获得一些帮助知道哪些需要建立索引(

数据库性能调优(转)

数据库性能调优 SQLServer性能监控 这套性能优化的清单将至少准科学的帮助你找出你的SQLServer任何明显的性能问题.说是这样说,SQLServer的性能调优仍然是很困难的.我试图用这套清单去找出“容易”的sqlserver性能问题,困难的留待稍后.我这样做是因为很容易将容易和困难的的性能调优问题搞混.通过列出一个“容易”的性能调优范围,就很容易的将这些问题解决,一旦解决了这些容易的问题,那么你就能集中去解决更困难的问题. 使用这个SQLServer性能调优清单的一个好处是,它将不仅仅

MySQL数据库参数调优方法

怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一段时间后运行,根据服务器的”状态”进行优化. 注:参数的调整可以通过修改 /etc/my.cnf 文件并重启 MySQL 实现.这是一个比较谨慎的工作,你可以根据你自己主机的硬件情况(特别是内存大小)进一步修改. mysql> show global status;  可以列出MySQL服务器运行各种状态值,另外,查

一文教会你数据库性能调优(附某大型医院真实案例)

原文:一文教会你数据库性能调优(附某大型医院真实案例) 前言 微软工程师的一个工程师曾经对性能调优有一个非常形象的比喻:剥洋葱 .我也非常认可,让我们来一层一层拨开外面它神秘的面纱. 六大因素 下面祭出的是我们在给客户分析数据库性能问题最常用的图. 看完这个图,你是不是对性能调优有了个基本的概念了.通常来讲我们会依照下面的顺序来进行分析: 硬件能力 系统规模 数据库内部因素 软件环境 这4个的顺序可以有所调整或者交换,但是对于系统的性能优化一定要从全局出发.切勿一来就深入到某一个SQL语句的优化

数据库参数调优--自动更新统计信息

数据库参数调优--自动更新统计信息 原文: https://blog.csdn.net/z10843087/article/details/78356975 背景 我们都知道SQL SERVER 借助统计信息来产生执行计划,而过时的统计信息会导致SQL SERVER选择错误的执行计划,导致严重的性能问题.  在数据库中选项可以自动的更新统计信息.如下图: 默认他是开启的,所以我们很少去关注他或者修改他. 异步更新和同步更新 其实除了同步更新统计信息外,还有一个异步更新统计信息的选项.他和同步更新

对于查询调优,你需要的不止STATISTICS IO

在我查询调优期间,STATISTICS IO会话选项是我的朋友,因为对于指定的查询,它准确告诉你有多少页已读取.每次,SQL Server从缓存池骑牛一个8K的页,它通过STATISTICS IO的输出获得记录. 通常我会建议启用STATISTICS IO来更好的理解在给定的查询里,涉及的表上有多少页被读取.而且查询调优的目标是尽可能减少这些读取页数——通过索引策略.对于查询,你数据读的越少,查询就会越快.但今天的问题如下:对于查询调优,STATISTICS IO有你需要的一切么,还是又你应该知

数据库性能调优——sql语句优化(转载及整理)

下面是在网上搜集的一些个人认为比较正确的调优方案,如有错误望指出,定虚心改正 (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (

MySQL 数据库规范--调优篇(终结篇)

前言 这篇是MySQL 数据库规范的最后一篇--调优篇,旨在提供我们发现系统性能变弱.MySQL系统参数调优,SQL脚本出现问题的精准定位与调优方法. 目录 1.MySQL 调优金字塔理论 2.MySQL 慢查询分析--mysqldumpslow.pt_query_digest工具的使用(SQL脚本层面) 3.选择合适的数据类型 4.去除无用的索引--pt_duplicate_key_checker工具的使用(索引层面) 5.反范式化设计(表结构) 6.垂直水平分表 7.MySQL 重要参数调优

数据库性能调优.原理与技术pdf

这是一本关于数据库调优的极佳参考书,强烈推荐给从事数据库管理人员,本书对有经验的数据库管理员同样有价值,对于数据库设计人员和数据库研究者,同样是一本难得的参考书. 下载地址:网盘下载