目录
一、索引
索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引, 并指定索引的类型,各类索引有各自的数据结构实现。索引所起的作用类似书籍目录,可用于快速定位、检索数据。
【特点】
1、加快查询的速度。
2、索引自身也是一定的数据结构,也要占据存储空间。
3、当我们需要进行新增、删除、修改时,也需要针对索引进行更新。(额外的开销)
【适用场景】
1、对于存储空间要求不高。
2、场景中,查询较多,增加修改删除都不多。(读多写少)
【使用方式】
创建主键约束 (PRIMARY KEY)、唯一约束 (UNIQUE)、外键约束 (FOREIGN KEY) 时,会自动创建对应列的索引。
1、查看索引
查看某个表是否有索引,以及有几个索引。
show index from 表名;
【例子】
查看学生表已有的索引。
show index from student;
2、创建索引
对于非主键、非唯一约束、非外键的字段,可以创建普通索引。
create index 索引名 on 表名(列名);
【例子】
创建学生表中 name 字段的索引。
create index idx_student_name on student(name);
3、删除索引
drop index 索引名 on 表名;
【例子】
删除学生表中 name 字段的索引。
drop index idx_student_name on student;
二、事务
事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。
【4个核心特性】
1、原子性:通过事务,把多个操作打包到一起。
2、一致性:原子性的延伸。
3、持久性:事务任何的修改,都是持久化存在 (写入硬盘)。
4、隔离性:多个事务并发执行时,可能会产生一些问题,通过隔离性来权衡问题。
【使用方式】
1、开启事务:start transaction;
2、执行多条 SQL 语句;
3、回滚或提交:rollback/commit;
注:rollback 即全部失败,commit 即全部成功。
总结
1、索引适用于对于存储空间要求不高,读多写少的场景。
2、事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。
3、rollback 即全部失败,commit 即全部成功。