索引是什么?
索引是一种单独的、物理上的对单列表或者多列表进行存储排序的一种数据结构, 就像书的目录
索引的优势有哪些
- 类似目录一般的存在, 提升了检索的效率, 降低了数据库的IO成本
- 通过索引列对数据进行排序, 降低数据的排序成本, 可以降低CPU的消耗
索引的劣势
会使CUD的效率降低
当对表进行更新时, MySQL不仅需要去保存数据, 还要去更新索引文件(更新添加了索引的字段)
会占用较大的磁盘空间
实际上索引也是一张表, 该表保存了主键和索引字段, 并指向实体表的记录
索引该什么时候用?
- 频繁进行查询的表或者字段
- 查询中与其他表进行关联的字段(外键关系建立索引)
- 查询中进行排序的字段
- 查询中进行统计和分组的字段
索引什么时候不该用?
- 频繁进行增加, 删除, 更新的表或者字段
- 表记录太少
- 对有大量重复的字段没必要创建索引(例如🚹🚺
- 如果需要表中所有的记录那没必要创建索引