JavaWeb 课堂笔记 —— 13 MySQL 事务
本系列为笔者学习JavaWeb的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖Spring+MyBatis+SpringMVC+SpringBoot等)》,章节分布参考视频教程,为同样学习JavaWeb系列课程的同学们提供参考。
01 引子
我们假设一种场景,如果学工部整个部门解散了,该部门及部门下的员工都需要进行删除操作。
02 事务的概念
事务是一组操作的集合,它是一个不可分割的工作单位。事务会把所有操作作为一个整体一起向系统提交或撤销操作请求,这些操作要么同时成功,要么同时失败。
事务控制:
- 开启事务
start transaction; / begin;
- 提交事务
commit;
- 回滚事务
rollback;
start transaction;delete from tb_dept where id = 3;
delete from tb_emp where dept_id = 3;commit;rollback;
03 四大特性(ACID)
04 索引的概念
索引(index)
是帮助数据库高效获取数据的数据结构。
优点:提高效率,降低成本和cpu
消耗
缺点:占用空间,降低insert、update、delete
效率
05 B+Tree 多路平衡搜索树
- 每一个结点可以存储多个
key
和多个指针 - 叶子结点存储数据,非叶子结点索引数据
- 最底层双向链表
06 语法
create index idx_emp_name on tb_emp(name);show index from tb_emp;drop index idx_emp_name on tb_emp;
注:图形化操作创建表格时,primary key
和unique
默认创建主键索引和唯一索引。