一.事务
1.事务的定义
1.事务:一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元)
2. 一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成
3. 事务只和DML语句有关,或者说DML语句才有事务。这个和业务逻辑有关,业务逻辑不同,DML语句的个数不同
2.转账操作理解事务
银行账户表t_act(账号、余额),进行转账操作
转账操作
3.事务四大特征(ACID)
- 原子性(A):事务是最小单位,不可再分
- 一致性©:事务要求所有的DML语句操作的时候,必须保证同时成功或者同时失败
- 隔离性(I):事务A和事务B之间具有隔离性
- 持久性(D):是事务的保证,事务终结的标志(内存的数据持久到硬盘文件中)
4.事务的开始
二.索引
1.索引的定义
索引可以提高查询效率,解决大量的数据的查询效率问题。索引的目的是使有序的内容在查找时消耗时间更少
2.索引的分类
- index 普通索引,该索引对被索引的数据列没有任何限制,普通索引允许插入重复值和空值,然后也只为了出现查询条件(WHERE)或(ORDER BY) 中的数据创建索引
- UNIQUE 唯一索引,唯一索引不允许两行具有相同的所有值,但创建唯一索引允许有空值
- PRIMARY KEY 主键索引 不允许有空只值 创建了主键后数据库就会自动创建主键
- FULLTEXT 全文索引 全文索引的作用是在定义的列上支持的全文查找,允许插入空值和重复值。全文索引只能有在CHAR,VARCHAR或TEXT的数据类型创建,主要用于查询大量的字符串。
3.索引理论 (重点)
1. 使用索引可加快数据检索速度,但没必要每个列都创建索引。因为索引自身也需要维护,并占用一定的资源,可按照下列标准选择建立索引的列
- 频繁搜索的列
- 经常用作查询选择的列
- 经常排序,分组的列
- 经常用作连接的列(主键、外键)
注意下面的列不要创建索引
- 只包含几个不同值的列
- 表中只包含几行
2.索引的注意
- 查询时减少使用‘ * ’的使用,不要返回不需要的列
- 索引应该尽量小,在字节数小的列上的列上建立索引
- where子句中有多个条件表达式时,包含索引列的表达式应置于其他条件表达式之前
- 避免在ORDER BY子句中使用表达式
- 根据业务数据发生频率定期重新生成或重新组织索引,进行碎片整理
4.创建索引
语法:CREATE 索引 INDEX 索引命名 ON 表名(字段名)
5.查看索引
语法:SHOW INDEX FROM 索引的命名
6.删除索引
语法:DROP INDEX 索引的命名 ON 表名
三.视图
1.视图的概述
视图是由数据库中的一个表或多个表导出的虚拟表,其作用是方便用户对数据的操作。
2.创建视图
创建视图是指在已经存在的数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。
3.查看视图
查看视图是指查看数据库中已存在的视图的定义。
4.删除视图
删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据。MySQL中,使用DROP VIEW语句来删除视图。但是,用户必须拥有DROP权限。
例:删除视图。