MySQL索引基础知识总结

  1. 首先说一下MySQL的最常用的存储引擎有2种,MyIASM和Innodb,而这两种又有什么区别呢?从存储结构看MyIASM存储在三个文件中:表的定义文件,索引文件和数据文件,而Innodb是所有的表可以都存放在一个文件中,也可以分开存放。MyIASM不支持事务和外键,查询更快,表级锁定,不支持hash索引;Innodb支持事务和外键,增删改更优,支持行级锁定、表级锁定,锁定力度小并发能力高,支持全文索引;对比可以看出查询较多使用MyIASM,需要保证数据完整性,并发量高使用Innodb

  2. 什么是索引呢?索引是一种特殊文件包含了对应所有表中记录的引用指针。通俗的说索引相当于目录,直接根据目录定位到具体的数据;有哪些应用场景呢?where,order by和join频繁查询 ;索引有哪几种类型:主键索引,唯一索引(UNIQUE ),普通索引和全文索引(FULLTEXT );索引的数据结构:BTree(所有关键字分布在整个树上),B+Tree(所有的关键字出现在叶子节点上,且是有序的,对于范围查找比BTree更快),Hash(适用于 = in 查询);创建索引的原则:最左前缀匹配原则就是尽可能的把能用到索引的条件放左边、较频繁查询的字段才适合创建索引而更新频繁不适合建、若不能有效区分数据的列不适合做索引、外键一定要建索引;Innodb:主键索引是聚簇索引(索引和数据存放在一起),其他为非聚簇索引(辅助索引),辅助索引查询依赖于主键索引;MyIASM都是非聚簇索引(索引和数据存放在两个文件中)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值