1.存储过程:是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理。
2.参数:输入类型、输出类型、输入&&输出
3.创建:CREATE......PROCEDURE........
4.注意事项:
(1)创建存储过程或者自定义函数时需要通过delimiter语句修改定界符。
(2)如果函数体或过程体有多个语句,需要包含在为BEGIN.......END语句块中。
(3)存储过程通过call来调用。
** 存储引擎 **
MySQL可以将数据以不同的技术存储在文件(内存)中这种技术就成为存储引擎。
每一种存储引擎使用不同的存储机制,索引技巧,锁定水平,最终提供广泛且不同的功能。
MySQL支持的存储引擎
存储引擎
——MyISAM
——InnoDB
——CSV
——Archive
相关知识点
- 并发控制
——当多个连接对记录进行修改时得保证数据的一致性和完整性 - 锁
——共享锁(读锁):在同一时间段内,多个用户可以读取同一个资源,读取过程中数不会发生任何变化。
——排他锁(写锁):在任何时候只能有一个用户写入资源,当进行写锁时会阻塞其他的读锁或写锁操作。 - 锁颗粒
——表锁,是一种开销最小的锁策略。
——行锁,是一种开销最大的所策略。 - 事务
——事务用于保证数据库的完整性 - 事务的特性
——原子性(Atomicity)
——一致性(Consistency)
——隔离性(Isolation)
——持久性(Durability) - 外键
——是保证数据一致性的策略 - 索引
——是对数据表中一列或多列的值进行排列的一种结构。
各种存储引擎的特点
特点 | MyISAM | InnoDB | CSV | Archive |
---|---|---|---|---|
存储限制 | 256TB | 64TB | 有 | 无 |
事务安全 | - | 支持 | - | - |
支持索引 | 支持 | 支持 | 支持 | - |
锁颗粒 | 表锁 | 行锁 | 表锁 | 行锁 |
数据压缩 | 支持 | - | - | 支持 |
支持外键 | - | 支持 | - | - |
注:CSV存储引擎不支持索引。
BlackHole:黑洞引擎;写入数据都会消失,一般用做数据复制的中继。
MyISAM:适用于事务的处理不多的情况。
InnoDB:适用于事务处理比较多,需要有外键支持的情况。
修改存储引擎的方法
通过修改MySQL配置文件实现
-default - storage - enginr = engine
** 通过创建数据表命令实现 **
- CREATE TABLE tsble - name(
....
....
)ENGINE = engine;
**通过修改数据表命令实现 **
-ALIER TABLE table - name ENGINE[=]engine -name