SQL 优化SQL查询】的更多相关文章

查询速度慢的原因很多,常见如下几种 SQL慢查询分析 转自:https://www.cnblogs.com/firstdream/p/5899383.html 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有 创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7. 锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)sp_lock,sp_who,活…
一.MySql的慢查询日志的开启和存储 1.查看是否把没有使用索引的SQL记录到慢查询日志中,查看 log_queries_not_using_indexes 变量; show VARIABLES LIKE "log_queries_%" 结果: 查询到的值若为OFF, 表示没有记录, 设置为on来开启记录: set global log_queries_not_using_indexes = on; 2.查看查询时间 long_query_time ,即查询的时间大于这个值(单位为秒…
摘至于:http://www.cnblogs.com/ATree/archive/2011/02/13/sql_optimize_1.html 1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 “全表扫描”方式. 可见,执行计划…
什么是存储过程?有哪些优缺点? 什么是存储过程?有哪些优缺点? 存储过程就像我们编程语言中的函数一样,封装了我们的代码(PLSQL.T-SQL). 存储过程的优点: 能够将代码封装起来 保存在数据库之中 让编程语言进行调用 存储过程是一个预编译的代码块,执行效率比较高 一个存储过程替代大量T_SQL语句 ,可以降低网络通信量,提高通信速率 存储过程的缺点: 每个数据库的存储过程语法几乎都不一样,十分难以维护(不通用) 业务逻辑放在数据库上,难以迭代 三个范式是什么 三个范式是什么 第一范式(1N…
方法一: SELECT TOP 10 TEXT AS 'SQL Statement' ,last_execution_time AS 'Last Execution Time' ,(total_logical_reads + total_physical_reads + total_logical_writes) / execution_count AS [Average IO] ,(total_worker_time / execution_count) / 1000000.0 AS [Ave…
1.查看sql是否涉及多表的联表或者子查询,如果有,看是否能进行业务拆分,相关字段冗余或者合并成临时表(业务和算法的优化) 2.涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合 3.如果以上两种都不能操作,非要链表查询,那么考虑对相对应的查询条件做索引.加快查询速度 4.针对数量大的表进行历史表分离(如交易流水表) 5.数据库主从分离,读写分离,降低读写针对同一表同时的压力,至于主从同步,mysql有自带的binlog实现 主从同步 6.explain分析sql语句,查看执行计…
Long run sql: MERGE INTO INTITMRTNPARAM D USING ( SELECT A.INRFILENM,A.INRSTAT,A.INRDEPCD,A.INRITMCD,A.INRSUBCD,A.INRSUPCD,A.INRSTOCD FROM INTITMRTNPARAM A,INTITMRTNPARAM B WHERE 1=1 AND A.ROWID <> B.ROWID AND A.INRFILENM = B.INRFILENM AND A.INRSTAT…
1. 索引不合适,走主键进行了key lookup查找   说明索引没有覆盖到where条件 或者  orderby 或者 group by的列…
目录 索引(Index) 索引的原理 b+树 MySQL如何使用索引 如何优化 索引虽好,不可滥用 如何验证索引使用情况? SQL优化 explain查询执行计划 id select_type table type possible_keys key key_len ref rows Extra 索引(Index) MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构.索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 拿汉语字…
建立索引常用的规则 表的主键.外键必须有索引: 数据量超过300的表应该有索引: 经常与其他表进行连接的表,在连接字段上应该建立索引: 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引: 索引应该建在选择性高的字段上: 索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引: 复合索引的建立需要进行仔细分析:尽量考虑用单字段索引代替: A.正确选择复合索引中的主列字段,一般是选择性较好的字段: B.复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查…