CMU Database Systems - Embedded Database Logic

栏目: 数据库 · 发布时间: 7年前

内容简介:正常应用和数据库交互的过程是这样的,其实我们也可以把部分应用逻辑放到DB端去执行,来提升效率

正常应用和数据库交互的过程是这样的,

CMU Database Systems - Embedded Database Logic

其实我们也可以把部分应用逻辑放到DB端去执行,来提升效率

User-defined Function

Stored Procedures

Triggers

Change Notification

User-defined Types

Views

UDF

用户定义的function,往往用于select中,不会修改数据本身

CMU Database Systems - Embedded Database Logic CMU Database Systems - Embedded Database Logic

UDF可以用 SQL 实现,也可以用外部语言,右边是PG的例子

CMU Database Systems - Embedded Database Logic CMU Database Systems - Embedded Database Logic

Stored Procedure

存储过程,可以理解成在数据库上执行一个脚本

不但可以读还可以操作修改库

存储过程的执行往往直接在命令行执行

CMU Database Systems - Embedded Database Logic CMU Database Systems - Embedded Database Logic

Trigger

触发器,按条件去触发逻辑

3个要素,事件类型,事件的范围,什么时候触发

CMU Database Systems - Embedded Database Logic CMU Database Systems - Embedded Database Logic

例子,当foo表被改动的时候,往foo audit表里面插入一条audit记录

首先要定义UDF,log_foo_updates

然后定义trigger,foo_updates,时间是在更新前,before update,范围是每一行,for each row

CMU Database Systems - Embedded Database Logic

Change Notification

trigger是在数据库内部的操作,如果要把消息通知到外部用户,就需要change Notification

CMU Database Systems - Embedded Database Logic CMU Database Systems - Embedded Database Logic

User-Defined Type

一般如果要在数据库里面存储复杂类型,有两种方式

CMU Database Systems - Embedded Database Logic

是否有更为优雅的方式?

UDT,了解一下

CMU Database Systems - Embedded Database Logic CMU Database Systems - Embedded Database Logic

View

View是虚拟的,其实是一种sql改写,你对view写的sql最终会被改写成对原表的查询sql

所以View不会提升查询性能

最要为了表达方便,比如对一个非常复杂的查询生成一个view,那就不用每次都重复写这个复杂查询

还有用处,不想让别人直接读原表的所有知道,用view做一个过滤,只让他看到他应该看的

CMU Database Systems - Embedded Database Logic CMU Database Systems - Embedded Database Logic

View由于是虚拟,所以不存在同步问题,原表更新了,view也会一起更新,因为都是重新查的

这个和Select...Into不同,select into是做snapshot,会把内容真正的写入静态表里面,这样如果原表更新了,snapshot是不会跟着变的

还有一种view

物化视图,这个一般只有在商业化数据库中有实现

物化视图就是做优化,他会materialized部分或全部数据,这样查询view的时候性能就会很好,然后当原表更新的时候,物化视图也要跟着被更新

物化视图如何实现的,有很多方法,比如用trigger,但是高效的实现是很困难的

CMU Database Systems - Embedded Database Logic


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

Cyberwar

Cyberwar

Kathleen Hall Jamieson / Oxford University Press / 2018-10-3 / USD 16.96

The question of how Donald Trump won the 2016 election looms over his presidency. In particular, were the 78,000 voters who gave him an Electoral College victory affected by the Russian trolls and hac......一起来看看 《Cyberwar》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具