一条sql执行过长的时间,你如何优化,从哪些方面?
发布网友
发布时间:2022-04-04 06:20
我来回答
共2个回答
热心网友
时间:2022-04-04 07:50
1、查看sql是否涉及多表的联表或者子查询,如果有,看是否能进行业务拆分,相关字段冗余或者合并成临时表(业务和算法的优化)
2、涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合
3、如果以上两种都不能操作,非要链表查询,那么考虑对相对应的查询条件做索引。加快查询速度
4、针对数量大的表进行历史表分离(如交易流水表)
5、数据库主从分离,读写分离,降低读写针对同一表同时的压力,至于主从同步,mysql有自带的binlog实现 主从同步
6、explain分析sql语句,查看执行计划,分析索引是否用上,分析扫描行数等等
7、查看mysql执行日志,看看是否有其他方面的问题
个人理解:从根本上来说,查询慢是占用mysql内存比较多,那么可以从这方面去酌手考虑
热心网友
时间:2022-04-04 09:08
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。
3.应尽量避免在 where 子句中使用 != 或 <> 操作符,否则将引擎放弃使用索引而进行全表扫描。
4.应尽量避免在 where 子句中使用 or 来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎放弃使用索引而进行全表扫描。
5.in 和 not in 也要慎用,否则会导致全表扫描。
6.若要提高效率,可以考虑全文检索,尽量避免全表扫描。
7.如果在 where 子句中使用参数,也会导致全表扫描。因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编译时进行选择。然 而,如果在编译时建立访问计划,变量的值还是未知的,因而无法作为索引选择的输入项。
8.应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。
9.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。
10.不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。
一条sql执行过长的时间,你如何优化,从哪些方面?
1、查看sql是否涉及多表的联表或者子查询,如果有,看是否能进行业务拆分,相关字段冗余或者合并成临时表(业务和算法的优化)2、涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合 3、如果以上两种都不能操作,非要链表查询,那么考虑对相对应的查询条件做索引。加快查询速度 4、针对...
请简述项目中优化sql语句执行效率的方法,从哪些方面,sql语句性能如何分析...
1. SQL优化的原则是:将一次操作需要读取的BLOCK数减到最低,即在最短的时间达到最大的数据吞吐量。调整不良SQL通常可以从以下几点切入:? 检查不良的SQL,考虑其写法是否还有可优化内容 ? 检查子查询 考虑SQL子查询是否可以用简单连接的方式进行重新书写 ? 检查优化索引的使用 ? 考虑数据库的优化器 2...
sql调优的几种方式
你好,SQL优化的一些方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进...
如果输入一条查询一张表的sql语句,但数据库执行缓慢,如何并采取什么样的...
1、还可以通过Where条件,减少每次查询的数据量。2、将查询语句放在存储过程中,因为存储过程中的语句在首次调用时会被编译,以后再次调用进直接执行编译过的程序。
sql查询语句太长,超过128
存储过程处理吧。存储过程的优点:因为存储过程是T-sql语句的批处理,再加上存储过程是预编译的,再次执行此存储过程的时候就不需要编译了,速度方面也大大的提升了.直接用一条查询语句的话那每次执行的话,都需要编译一次,并且加大了网络流量,还有一点,就是查询条件变了还需改动VB源代码,还不如存储过程...
sql优化具体指的是什么?
sql优化主要有两点,一是格式优化,使sql看起来整洁,易读,这样对于其他人阅读你的sql有很大帮助。二是性能优化,格式优化多数来说,使用工具就可以做到,但性能优化需要人为来做,根据你的实际业务确定优化方案,可大幅减少复杂sql的执行时间,这也是sql优化的主要目的和内容。
从哪些方面,sql语句性能如何分析
1、 打开熟悉的查看工具:PL/SQL Developer。在PL/SQL Developer中写好一段SQL代码后,按F5,PL/SQL Developer会自动打开执行计划窗口,显示该SQL的执行计划。2、 查看总COST,获得资源耗费的总体印象 一般而言,执行计划第一行所对应的COST(即成本耗费)值,反应了运行这段SQL的总体估计成本,单看这个...
sql语句性能如何优化??
优化SQL语句的传统方法是通过手工重写来对SQL语句进行优化。DBA或资深程序员通过对SQL语句执行计划的分析,依靠经验,尝试重写SQL语句,然后对结果和性能进行比较,以试图找到性能较佳的SQL语句。这种传统上的作法无法找出SQL语句的所有可能写法,且依赖于人的经验,非常耗费时间。 SQL优化技术的发展历程 第一代SQL优化工具是...
如何优化SQL语句
(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写 在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的 情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询 , 那就需要选择交叉表(...
SQL数据库查询的优化
在运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。任何一个设计良好的数据库应用程序都应当尽可能地用到存储过程。我提到的以上几点,是针对入门者而言,...