优化是什么?最快速度?最少资源消耗?性能最稳定?优化是在合理的利用资源达到,合理的资源消耗,以及较快的响应速度。最主要是稳定。优化先要弄懂,花费的时间、资源去哪了sql优化顺序,1、sql建表优化,一、所占资源(定义类型)二、索引(是否需要创建索引,索引所占大小)..
分类:
数据库 时间:
2015-02-28 11:34:07
阅读次数:
208
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 ? 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: ? se...
分类:
数据库 时间:
2015-02-25 18:47:07
阅读次数:
211
一、问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句...
分类:
数据库 时间:
2015-02-15 20:37:09
阅读次数:
301
有MySQL使用经验的同学在实际项目中可能会遇到SQL慢查询的场景,有些场景很容易定位问题所在(如单表操作有慢查询SQL时,仔细check SQL语句通常很容易定位索引问题),而有些复杂业务场景(如多表联合查询几十个字段并做group或sort等操作)下,人工check SQL语句通常很难发现SQL瓶颈所在。这个时候,MySQL提供的explain命令就派上用场了。
本笔记主要对explain的...
分类:
数据库 时间:
2015-02-14 22:37:24
阅读次数:
217
1)数据库完整性
①实体完整性(Entity Integrity):自己
a)一个关系对应现实世界中一个实体集。--ER模型
b)现实世界中的实体具有某种惟一性标识。--主键
c)主关键字是多个属性的组合,则所有主属性均不得取空值。--隐含的索引
②域完整性(Domain Integrity): 自己的局部
保证数...
分类:
数据库 时间:
2015-02-13 16:37:03
阅读次数:
195
1)GROUP BY分组转换(MySQL不支持)
①分组操作下移
GROUPBY 操作可能较大幅度减小关系元组的个数,如果能够对某个关系先进行分组操作,然后再进行表之间的连接,很可能提高连接效率。这种优化方式是把分组操作提前执行。下移的含义,是在查询树上,让分组操作尽量靠近叶子结点,使得分组操作的结点低于一些选择操作。
②分组操作上移
如果连接操作能够过滤掉...
分类:
数据库 时间:
2015-02-13 16:32:35
阅读次数:
196
1)外连接消除
①外连接简介
1)LEFT JOIN / LEFT OUTER JOIN:左外连接
左向外连接的结果集包括:LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
2)RIGHT JOIN / RIGHT ...
分类:
数据库 时间:
2015-02-13 14:47:02
阅读次数:
153
1)查询条件
查询条件概念:
SQL查询语句中,对元组进行过滤和连接的表达式,形式上是出现在WHERE/JOIN-ON/HAVING的子句中的表达式。
2)条件化简技术
①条件下推:把与单个表相关的条件,放到对单表进行扫描的过程中执行。
SELECT *
FROM A, B
WHERE A.a=1 and A.b=B.b;...
分类:
数据库 时间:
2015-02-13 11:41:35
阅读次数:
211
有一个脚本跑了很久不出结果,优化之后瞬间出结果。原语句如下:
SQL> explain plan for
2 select *
3 from crm_dg.tb_ba_channelstaff a,
4 crm_dg.tb_ba_subscription_hist b,
5 crm_dg.tb_cm_serv...
分类:
数据库 时间:
2015-02-11 14:41:14
阅读次数:
202
SQL语句的优化是将性能低下的SQL语句转换成目的相同的性能优异的SQL语句。 人工智能自动SQL优化就是使用人工智能技术,自动对SQL语句进行重写,从而找到性能最好的等效SQL语句。 数据库性能的优化 一个数据库系统的生命周期可以分成:设计、开发和成品三个阶段。在设计阶段进行数据库性能优化的...
分类:
数据库 时间:
2015-02-10 10:30:00
阅读次数:
184