博客目录
一、存储过程
1.格式
MySQL中还可以使用select…into语句为变量赋值
2.存储过程传参
1.in
in 表示传入的参数,可以传入数值或者变量,即使传入变量,并不会更改变量的值。可以内部更改,仅仅作用在函数范围内。
2.out
out表示从存储过程内部传值给调用者
3.inout
inout 表示从外部传入的参数经过修改后可以返回的变量,既可以使用传入变量的值也可以修改变量的值(即使函数执行完)
3.流程控制
1.条件判断
if
case
2.循环
- 循环是一段在程序中只出现一次,但可能会连续运行多次的代码。
- 循环中的代码会运行特定的次数,或者是运行到特定条件成立时结束循环
循环分类:
while
repeat
loop
循环控制: - leave类似于break,跳出,结束当前所在的循环
- iterate类似于continue,继续,结束本次循环,继续下次循环
1.while
2.repeat
3.loop
(如果没有 if 判断语句,则就是个死循环)
4.游标
游标(cursor)是用来存储查询结果集的数据类型,在存储过程和函数中可以使用光标对结果集进行循环的处理。光标的使用包括光标的声明,open,fetch和close。
5.句柄
MySQL存储过程提供对异常处理的功能:通过定义handler来完成异常声明的实现
6.存储函数
二、触发器
三、索引
1.普通索引
2.唯一索引
(在创建索引时加入个unique)
3.组合索引
- 组合索引也叫复合索引,指的是我们在建立索引的时候使用多个字段,例如同时使用身份证和手机号建立索引,同样的可以建立为普通索引或者是唯一索引。
- 复合索引的使用符合最左原则
4.空间索引
5.索引的原理
6.索引的特点
索引的优点
- 大大加快数据的查询速度
- 使用分组和排序进行数据查询时,可以显著减少查询时分组和排序的时间
- 创建唯一索引,能够保证数据库表中每一行数据的唯一性
- 在实现数据的参考完整性方面,可以加速表和表之间的连接。
索引的缺点
- 创建索引和维护索引需要消耗时间,并且随着数据量的增加,时间也会增加
- 索引需要占据磁盘空间
- 对数据表中的数据进行增加,修改,删除时,索引也要动态的维护,降低了维护的速度
创建索引的原则
- 更新频繁的列不应设置索引
- 数据量小的表不要使用索引
- 重复数据多的字段不应设为索引
- 首先应该考虑对where和order by 涉及的列上建立索引
四、事务
查看事务为手动提交还是自动提交
设置事务为手动提交
自动提交时为 1;
事务的四大特性:
事务的隔离级别:
五、日志
1.错误日志
2.二进制日志