目录
1.索引
1.1概念
索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。
1.2作用
数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的系。索引所起的作用类似书籍目录,可用于快速定位、检索数据。索引对于提高数据库的性能有很大的帮助。
1.3使用
创建主键约束( PRIMARY KEY )、唯一约束( UNIQUE )、外键约束( FOREIGN KEY )时,会自动创建对应列的索引。
查看索引
show index from 表名
创建索引,对于非主键、非唯一约束、非外键的字段,可以创建普通索引
create index 索引名 on 表名(字段名);
删除索引
drop index 索引名 on 表名;
1.4面试问题
1.索引存在的意义:提高查找效率
2.索引付出的代价:空间代价、时间代价
3.索引背后的数据结构:
B+树(N叉搜索树,每个节点上包含了N个记录,N个记录就分成了N+1个区间,对应到N+1个子树,就可以通过该方式快速确定要查找的值在那个区间,进一步进行快速筛选)
2.事务
事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。在不同的环境中,都可以有事务。对应在数据库中,就是数据库事务。
2.1使用
开启事务
start transaction;
执行多条
SQL
语句
回滚或提交:
rollback/commit;
说明:
rollback
即是全部失败,
commit
即是全部成功。
2.2面试问题
谈谈对事务的理解
1.事务是把多个SQL打包成一个,要么全部执行,要么就都不执行
2.事务的应用场景,典型就是转账
3.事务的核心就是回滚,回滚就是mysql 要记录之前执行的一些过程
事务的几个基本特性
1.原子性(事务的核心)
2.一致性
3.持久性
4.隔离性 (脏读-给写操作加锁,不可重复性-给读操作加锁,幻读-串行化)