- 分类
- 查询优化
- 性能优化
- 索引
- 事务
- 面经
1、分类
关系型数据库
1)mysql
2)sqlserver
非关系型数据库
1)键值对数据库:redis、memcache
2)列存储数据库:hbase
3)文档型数据库:mongdb
4)图形数据库:graph
2、查询优化
逻辑层查询优化
1.尽可能的早做选择和投影(基本思路):可以使中间结果变小,节省几个数量级的执行时间
2.把选择和投影串接起来:一元运算序列可一起执行,只需对整个关系进行一趟扫描
3.把投影与其前或后的二元运算结合:在第一次用关系时去掉一些无关属性,可以避免多次扫描整个关系
4.把某些选择与其前的笛卡尔积合并成一个连接:当RxS前有选择运算且其中条件是R,S属性间比较运算的时。可以将其转换为连接运算节省时间
5.执行连接运算前对关系做适当的预处理:排序,索引
6.找出表达式里的公共子表达式:若公共的子表达式结果不大,则预先计算,以后直接读入结果,尤当视图情况下使用
物理层查询优化
DBMS(DataBase Management System)衡量物理查询计划的优劣,I/O 访问次数,cpu占用时间,网络通信量等。
3、查询优化
影响因素
- 磁盘IO
- 网络IO吞吐量
优化方法
- 扩大虚拟内存,并保证有足够的可以扩充的空间
- 关闭数据库服务器上不必要的服务
- 数据库服务器和主域服务器分开
- 数据库服务器的吞吐量调为最大
调整数据库
- 只建立一个聚簇索引
- 为经常查询的列都建立索引
- 不要建立太多的索引
- 避免为大型数据类型的列建立索引
使用存储过程