本文共 995 字,大约阅读时间需要 3 分钟。
什么是数据库索引?
概念
索引是一种特殊的文件,包含对数据库表中所有记录的引用指针。它可以对表中的一列或多列创建索引,并指定索引的类型。不同类型的索引有不同的数据结构实现。
作用
- 索引在数据库中起到类似书籍目录的作用,可用于快速定位和检索数据。
- 没有索引时,数据库查询需要遍历整个表,效率极低。
- 索引显著提高数据库的查询效率,尤其是插入、修改和删除操作的效率也有所下降。
- 索引的本质作用是避免数据库进行顺序查找,提升查找效率。
使用场景
- 当对数据库表的某列或某几列进行频繁的条件查询时。
- 当该表的插入、修改操作频率较低时。
- 当索引不会占用过多的磁盘空间时。
满足以上条件时,建议对这些字段创建索引,以提高查询效率。反之,如果对这些列进行非条件查询,或者经常执行插入、修改操作,或者磁盘空间不足时,则不建议创建索引。
如何使用
- 创建主键约束(PRIMARY KEY)、唯一约束(UNIQUE)、外键约束(FOREIGN KEY)时,会自动创建对应列的索引。
- 手动创建索引时,可对非主键、非唯一约束、非外键的字段创建普通索引。
- 索引的删除需谨慎操作,主键、唯一约束和外键索引不可删除。
数据结构
- 索引的数据结构不是简单的二叉搜索树或哈希表。
- B-树与二叉树的主要区别在于:
- B-树的每个节点可以存储多个数据。
- B-树的每个节点存储的数据个数与其度有关(度 = 存储数据个数 + 1)。
- B-树的高度较低,查找效率比二叉树高。
- B+树是实际应用中的索引结构,其特点是:
- 数据仅存在于叶子节点。
- 非叶子节点仅存储边界信息。
- 查询时,平均访问磁盘的次数较少。
- 变化操作需同步调整索引,影响性能。
查看SQL执行
- 使用
EXPLAIN
命令可分析SQL执行过程,观察是否使用索引。 key
为NULL
表示未使用索引,否则显示使用了哪个索引。
什么是事务?
概念
事务是逻辑上的一组操作,组成的各个单元要么全部成功,要么全部失败。数据库事务具有原子性、一致性、持久性和隔离性。
使用方法
- 开启事务:
START TRANSACTION
- 执行多条SQL语句
- 提交或回滚:
COMMIT
或ROLLBACK
特点
- 原子性:所有操作要么全部成功,要么全部失败。
- 一致性:事务执行前后,数据库始终处于合法状态。
- 持久性:事务完成后,修改已持久生效。
- 隔离性:确保不同事务之间的操作隔离。
通过实际操作可以看到事务的强大功能。
转载地址:http://dnee.baihongyu.com/