sql优化常用的方法

本文介绍了SQL优化的多种方法,包括使用explain分析执行计划,避免在where子句中使用in、not in、or,减少select *的使用,善用limit 1,order by字段建立索引,以及合理使用exists替代in等,旨在提升SQL查询效率和数据库性能。
摘要由CSDN通过智能技术生成

1、explain 输出执行计划

在select语句前加上explain就可以了(MySQL 5.6开始,不仅仅支持select )能够简单分析sql的执行情况,是否走索引等。

  • type列,连接类型。一个好的SQL语句至少要达到range级别。从最好到最差的连接类型为const、eq_reg、- ref、range、index和ALL。一般来说,得保证查询至少达到range级别(范围扫描),最好能达到ref(索引访问)。
  • key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式。
  • key_len列,索引长度。
  • rows列,扫描行数。该值是个预估值。
  • extra列,详细说明。注意,常见的不太友好的值,如下:Using filesort,Using temporary。

更多相关关内容联合索引、索引失效、索引下推优化、回表、覆盖盖索引等问题可参看:MySQL慢查询是怎么回事MySQL索引

2、in 和 not in 要慎用

SQL语句中IN包含的值不应过多,MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。但是如果数值较多,产生的消耗也是比较大的。再例如:

select id from t where num in(1,2,3)

对于连续的数值,能用 between 就不要用 in 了:

select id from t where num between 1 and 3
<
Oracle慢SQL优化常用方法有以下几种: 1. 使用索引:索引是提高查询性能的重要手段。通过为查询条件的列创建索引,可以加快查询速度。可以使用EXPLAIN PLAN语句来查看查询计划,确定是否使用了索引。 2. 优化SQL语句:对于复杂的SQL语句,可以考虑优化查询逻辑,减少不必要的连接和子查询,尽量使用简单的查询语句。 3. 使用合适的数据类型:选择合适的数据类型可以减少存储空间和提高查询性能。例如,使用整型代替字符型存储数字数据。 4. 分析表和索引:通过收集统计信息,可以帮助优化器生成更好的执行计划。可以使用ANALYZE语句或者DBMS_STATS包来收集统计信息。 5. 使用HINT提示:通过在SQL语句中使用HINT提示,可以指导优化器选择合适的执行计划。但是需要注意,过多的使用HINT可能会导致维护困难和执行计划不稳定。 6. 优化硬件和存储:合理配置硬件资源和存储系统,可以提高数据库的整体性能。例如,增加内存、优化磁盘IO等。 7. 使用AWR报告:AWR报告可以提供详细的性能分析信息,包括慢SQL语句、资源消耗等。通过分析AWR报告,可以找到慢SQL语句并进行优化。 8. 使用SQL调优工具:Oracle提供了多种SQL调优工具,如SQL Tuning Advisor、SQL Access Advisor等。这些工具可以自动分析SQL语句,并给出优化建议。 9. 优化数据库参数:根据实际情况调整数据库参数,如SGA大小、PGA大小、并发连接数等,以提高数据库性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只IT攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值