六星教育 - java-mysql优化1909
- 什么是视图?
- 视图的优缺点
- 什么是触发器?
- 触发器的作用
- 触发器的一些场景
- 什么是存储过程?
- 对于存储过程的看法
- 存储过程的优缺点
- 物化视图
什么是视图?
视图是由数据库中的一个表或多个表导出的虚拟表,是一种虚拟存在的表,方便用户对数据的操作。
视图的优缺点
优点:
1.包子数据的安全 -> 开发人员 =》 x项目经理考虑(用户的一些隐私信息,一些重要数据)
2.对于开发程序员来说 -> 代码封装是一种含义(一些sql很长)
3.可以规避一些失误操作(写操作 -> binlog 数据恢复)
4.降低耦合(在程序中一些查询慢建立索引也不能很好解决,可以考虑分表,但是分表会造成对这个表涉及到的代码进行维护,用视图可以很好解决)
缺点:
1.写的操作 一些特点的视图不能写 分组,排序
2.视图不利于优化
- 什么是触发器
主要是通过事件触发而被执行的,当表中的某些内容发生改变(增、删、改)的时候,系统会自动触发代码并执行
触发器 - 事件 =》 js
- 触发器的作用
1.可在写入数据前,强制检验或者转换数据(保证护数据安全)
2.触发器发生错误时,前面用户已经执行成功的操作会被撤销,类似事务的回滚
- 触发器的一些场景
1.银行项目中回去使用 =》 触发器 =》 SQL写的事件
2.点击文章关注之后,进行排名
- 什么事存储过程?
数据库 SQL 语言层面的代码封装与重用
- 对于存储过程的看法
1.存储过程对mysql来说不友好,对oracle、sqlserver来说推荐(mysql难以调试和扩展,更没有移植性)
2.sqlserver、oracle期望所有业务交由存储过程实现(移植性特别好,底层比mysql好)
3.相当于mysql的函数
- 存储过程的优缺点
优点:
- 1.代码执行快(不是查询快) -> 预编译 不用再编译
- 2.耦合度低
- 安全性
- 减少网络通信频率
缺点:
- 1.不能使用索引
- 2.修改不方便 -> 代码不好调试
代码执行快的原因:
- 物化视图
1.查询操作 =》转换为视图 =》避免之后有所更改
2.根据视图结果创建对应的物理视图(记录表)
3.创建存储过程
4.定时执行