事务
一组操作的集合,不可分割的工作单位。这组操作要么同时成功,要么同时失败。
PS.mySQL的事务是自动提交的,执行一跳DML语句之后,mySQL会立即隐式提交事务。
开启事务:start transaction
or begin
提交事务:commit
回滚事务:rollback
在事务开启后执行sql语句,在当前查询页面的其他sql语句反应的结果中sql语句已执行,但是mySQL数据库中并没有修改数据。(知道提交事务之后,mySQL才会修改数据)
为了严谨,最好所以不是查询的调用都使用事务
四大特性(ACID)
特性 | 效果 |
---|---|
原子性 | 事务是不可分割的最小单元 |
一致性 | 事务完成时,必须使所以的数据保持状态一致 (要么都回滚,要么都上交) |
隔离性 | 保证事务在不受外部并发操作的情况下独立运行 |
持久性 | 事务一旦提交或者回滚,改变是永久的 |
索引
提高sql语句的查询效率。索引是帮助数据库高效获取数据的数据结构。
优点:
- 提高查询效率
- 提高数据排序的成本
缺点:
- 空间换时间
- 降低增删改的效率
数据结构
mySQL中默认是B+树的数据结构
B+树的结构想了解可以去查一下,对于学数据库来说没有说一定要了解。
语法
创建
create index idx_emp_name on tb_emp(name);
create [unique] index 索引名 on 表名(字段名);
查询
show index from tb_emp;
show index from 表名;
删除
drop index idx_emp_name on tb_emp;
drop index 索引名 on 表名;
注意事项
- 主键字段在建表时自动添加主键索引。(主键索引效率最高)
- 添加唯一约束时,数据库会添加唯一索引