Mysql查询优化从入门到跑路(一)数据库与关系代数
1.怎样才算是数据库?
ACID,是指在数据库管理系统中事务所具有的四个特性
1)原子性
2)一致性
3)隔离性
4)持久性
关系数据库,基于关系代数,数据库形式是表格,数据能以不同方式被存取或重新召集。
2.关系代数(简单的来讲就是一种抽象的查询语句)
从数学层面上来讲,关系代数是支持叫做逆反的对合一元运算的剩余布尔代数
从数据库层面上来讲,是闭合于运算下的关系的集合
注意:尽管SQL的查询语句松散的基于了关系代数,但是很多有用的关于关系代数的理论在SQL对应者中不成立。
select *** //投影
from *** //笛卡尔积
where *** //选择
union //并集\差集
......
3.查询优化
本博客重点在于“查询重写规则”和“查询算法优化”,从优化的内容角度上看,查询优化又分为代数优化和非代数优化,或称为逻辑优化和物理优化
4.数据库调优和查询语句调优
数据库调优可以使数据库应用运行地更快,其目的是使数据库由更高的吞吐量和更短的响应时间,被调优的对象是整个数据库管理系统总体
查询语句调优的对象是一条查询语句
5.数据库调优五个阶段的主要技术
1.应用情况的估算
应用的使用方式;数据量;对数据库的压力、峰值压力等做个预估
2.系统选型策略
确定什么样的数据库可以使用应用需求
3.数据模型的设计
1)E-R模型设计
2)数据逻辑分布策略
3)数据物理存储策略
4)索引,在查询频繁的对象上简历合适的索引,使索引的正效应大于负效应(索引的维护存在消耗)
4.SQL设计
5.系统的监控与分析