🚀 Database
1、数据库基础
1.1 事务的概念和特性
1.2 锁
1.3 锁协议
1.4 事务日志
1.5 MVCC实现原理
1.6 基础知识
1.6.1 三范式
1.6.2 多表连接方式
1.6.3 存储过程
1.6.4 TRUNCATE和DROP的区别
1.6.5 触发器
1.6.6 视图
2、MySQL
2.1 索引
2.2 索引组织表
2.3 InnoDB和MyISAM的区别
2.4 Checkpoint技术
2.5 宕机恢复原理
2.6 数据库优化
2.7 分库分表
2.8 一致性哈希算法
2.9 主从复制
3、Redis
3.1 概述
3.1.1 为什么Redis单线程还这么快
3.1.2 Redis数据类型
3.1.3 持久化机制
3.1.4 过期机制和内存淘汰策略
3.2 线程模型
3.3 分布式问题
3.3.1 Redis实现分布式锁
3.4 缓存异常
3.4.1 缓存击穿、缓存雪崩
3.5 高可用
3.5.1 主从复制
3.5.2 哨兵模式
3.5.3 集群模式
-
+
tourist
register
Sign in
存储过程
## 1 含义 1. 存储过程是**在数据库中定义一些完成特定功能的 SQL 语句的集合**,**经过编译后存储在数据库中**。 2. 存储过程**可以包含流程控制语句以及各种 SQL 语句**,他**可以接受参数**、**输出参数**。 ## 2 优缺点 ### 2.1 优点 在 MySQL 中使用存储过程,而不是用存储在客户端计算机本地的 SQL 程序,相比有以下几点优点: 1. **增强了 SQL 语言的功能和灵活性:** 1. 存储过程**可以使用流程控制语句编写**,**有很强的的灵活性**,**可以完成复杂的判断和较复杂的计算**。 2. **允许标准组件式变成:** 1. 存储过程被创建后,**可以在程序中被多次调用**,而**不用重新编写该存储过程的SQL语句**。 2. 数据库专业人员可以**随时对存储过程进行修改**,**对应用程序代码毫无影响**。 3. **能实现较快的执行速度:** 1. 如果**某一操作包含大量的SQL代码或被分多次执行**,那么**存储过程要比批处理的执行速度快很多**,因为**存储过程是预编译的**,在**首次运行一个存储过程时**,**查询优化器会对其进行分析优化**,并且**给出最终被存储在系统表中的执行计划**,而**批处理的SQL语句在每次运行时都要进行编译和优化**,**速度相对较慢**。 4. **减少网络流量:** 1. 针对同一数据库对象的操作(比如查询、修改),如果这一操作所涉及的SQL语句被组织成存储过程,那么当**在客户计算机上调用该存储过程时**,**网络中传送的只是该调用语句**,**从而大大减少了网络流量并降低了网络负载**。 5. **可被当做一种安全机制来充分利用:** 1. 系统管理员**通过对执行某一存储过程的权限进行限制**,进而**实现对响应数据的访问权限的限制**,**避免了非授权用户对数据的访问**。 ### 2.2 缺点 1. **可移植性差:** 存储过程将应用程序绑定到了数据库上。 2. **开发调试复杂:** 没有好的IDE。 3. **修改复杂:** 需要重新编译,有时候还需要更新程序中的代码以更新调用。 ## 参考文献 1. [什么是存储过程?有哪些优缺点?](https://github.com/wolverinn/Waking-Up/blob/master/Database.md#%E4%BB%80%E4%B9%88%E6%98%AF%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B%E6%9C%89%E5%93%AA%E4%BA%9B%E4%BC%98%E7%BC%BA%E7%82%B9) 2. [数据库原理之存储过程和函数](https://www.cnblogs.com/aaronthon/p/13294558.html)。
ricear
July 4, 2021, 3:47 p.m.
©
BY-NC-ND(4.0)
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
share
link
type
password
Update password