【SQL优化】教程文章相关的互联网学习教程文章

Mysq优化之SQL优化执行QEP(执行计划)【图】

使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。 explain执行计划包含的信息其中最重要的字段为:id、type、key、rows、Extra 各字段详解 id select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 三种情况: 1、id相同:执行顺序由上至下 2、id不同:如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行 3、...

实践一次有趣的sql优化【图】

课程表#课程表 create table Course( c_id int PRIMARY KEY, name varchar(10) )增加 100 条数据#增加课程表100条数据 DROP PROCEDURE IF EXISTS insert_Course; DELIMITER $ CREATE PROCEDURE insert_Course() BEGINDECLARE i INT DEFAULT 1;WHILE i<=100 DOINSERT INTO Course(`c_id`,`name`) VALUES(i, CONCAT(语文,i+));SET i = i+1;END WHILE; END $ CALL insert_Course();运行耗时课程数据 学生表#学生表 create table Stude...

SQL优化中的重要概念:死锁

原文:SQL优化中的重要概念:死锁 上面几篇文章讲到 事务、锁定、阻塞,最后还有一种比较极端的情况,就是死锁,这也是锁定、阻塞的一种情况。 死锁是当两个事务分别锁定了资源,而又继续请求对方已获取的资源,那么就会产生死锁。发生死锁的原因: A、会话以不同的顺序访问表。 B、会话长时间运行事务,在一个事务中更新了很多表或行,这样增加了冲突的可能。 C、会话1申请了一些行锁,会话2申请了一些行锁,之后决定将其升级为表...

sql优化实战:从1353秒到135秒(删除索引+修改数据+重建索引)【代码】

发现其有一个存储过程代码有问题,进一步发现结存的数据中有一个 日期字段business_date 是有问题的,这个字段对应的类型是varchar,但是存储过程传入参数的类型是char,导致最后结存进去的数据末尾多了几个空格。 比如,应该是‘2016-12‘的,但现在是‘2016-12 ‘。 为了解决这个问题,要修改这个字段的值,去掉尾部的空格,于是运行如下语句: [sql] view plain copy print? update TB_CUSTOMER_FROZEN set BUSINESS_DATE...

一个表空间使用率查询sql的优化

话不多说,直接上执行计划:SQL> set lines 500; SQL> set pagesize 9999; SQL> set long 9999; SQL> select * from table(dbms_xplan.display_cursor('41348610',null,'advanced'));PLAN_TABLE_OUTPUT --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------...

SQL优化 第五章 表连接方法【图】

参考资料: 本系列博客主要参考资料有CUUG冉乃纲老师数据库教学笔记,《SQL优化核心思想》(罗炳森,黄超,钟侥著),《PostgreSQL技术内幕:查询优化深度探索》(张树杰著),排名不分先后。 个人认为SQL优化有两大招,第一招,正确使用索引,这种方法简单快捷;第二招,就是更改表连接方法,这个有时候会比较复杂,很多时候,我们在和外连接,半连接,反连接,标量子查询做斗争。 下面是本章节的实验环境。 drop table tests1;...

SQL优化案例分享--联合索引

mysql> desc select sql_no_cache count(*) as total from Art_Works b,Art_Person a force index (PersonCode) where b.PersonCode=a.PersonCode; +----+-------------+-------+-------+---------------+------------+---------+---------------------+--------+-------------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |+----+-------...

一次非常有意思的SQL优化经历:从30248.271s到0.001s【代码】【图】

方法如下: 在命令窗口执行 有type=all 按照我之前的想法,该sql的执行的顺序应该是先执行子查询select s_id from SC sc where sc.c_id = 0 and sc.score = 100耗时:0.001s 得到如下结果:然后再执行select s.* from Student s where s.s_id in(7,29,5000)耗时:0.001s 这样就是相当快了啊,Mysql竟然不是先执行里层的查询,而是将sql优化成了exists子句,并出现了EPENDENT SUBQUERY, mysql是先执行外层查询,再执行里层的查询,...

SQL 优化数据库

原文链接:http://www.cnblogs.com/skywang/articles/1527288.html优化数据库的注意事项:   1、关键字段建立索引。   2、使用存储过程,它使SQL变得更加灵活和高效。   3、备份数据库和清除垃圾数据。   4、SQL语句语法的优化。(可以用Sybase的SQL Expert,可惜我没找到unexpired的序列号)   5、清理删除日志。   SQL语句优化的基本原则:   1、使用索引来更快地遍历表。   缺省情况下建立的索引是非群集索引,...

SQL优化【代码】

对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE。关于 MySQL 相关的文章和教程发布了很多,关注...

SQL优化——union与union all 、left join 和 inner join 及 内连接

最近在优化一个功能,原写法是视图中套用视图,视图中又有视图,且查询了多张表用不同的数据源,用了union也用了union all,还有left join 和 inner join 及内连接的使用。现象: 打开列表页面DB的使用率就高达30%优化点:1、在业务允许的情况下用union all 代替union union all 和 union 都是将两个结果集合并,但是效率有所不同:a.对重复结果的处理:union 会筛选去掉结果集中重复数据,而union all 允许有重复数据;b.对排序的...

sql优化总结

在项目前期目标是确保功能能够正常运行,但是随着时间的推移,数据的增加,逻辑的复杂,导致数据查询会越来越慢,这个时候我们首先想到的应该就是尽量优化sql。 sql优化常见注意点:1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。  2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。  3.应尽量避免在 where 子句中对字段进行 null 值判断,...

SQL优化【图】

SQL优化 SQL优化技术对表的设计合理化(符合3NF) 添加适当的索引(index)[普通索引,主键索引,唯一索引,全文索引] 分表技术(水平分割,垂直分割) 读写(update/delete/add)分离 存储过程(模块化编程) 对MySQL配置优化(配置最大并发数 my.ini , 调整缓存大小) MySQL服务器硬件升级 定时清除不需要的数据,定时进行碎片整理一、什么样的表才符合3NF1NF:对属性的原子性约束,即表的列具有原子性,不可再分解。 2NF:表中的记录是唯一的...

SQL优化之表连接方式【代码】

或者INDEX RANGE SCANSQL> select /*+gather_plan_statistics use_nl(e,d) leading(e)*/* from emp e,dept d where d.deptno=e.deptno;已选择14行。执行计划 ---------------------------------------------------------- Plan hash value: 3625962092----------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| T...

SQL优化技巧指南

对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描select id from t where num is null最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库。 备注、描述、评论之类的可以设置为 NULL,其他的,最好不要使用NULL。 不要以为 NULL 不需要空间,比如:char(100) 型,在字段建立时,空间就...