你了解MySQL嘛

1. mysql索引

1.1 索引类型

  1. 主键索引:要求索引列的值不重复且不为空值
  2. 唯一索引:要求索引列的值唯一且可以为空值
  3. 全文索引:用大文本对象的列作为索引
  4. 组合索引:多个列组合的索引,列中的值不允许有空值
  5. 普通索引:表中普通的列作为索引,没有限制

1.2 主键索引和唯一索引的区别

  1. 主键索引和唯一索引对列中的值要求稍有不同,主键索引更为严格。
  2. 每个表只能有一个主键索引,唯一索引可有多个。
  3. 主键可作为外键,唯一索引不行。
  4. 主键创建后,一定包括唯一性索引,唯一性索引不一定是主键。
  5. 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的

1.3 组合索引

组合索引遵循最左前缀,把最常用作为检索或排序的列放在最左,依次递减,组合索引相当于建立了,组合索引可能会因为列名太长导致索引太大,从而降低了效率,可以取列的前几个字符作为索引标准。

2. mysql存储引擎

InnoDB MyISAM
表的定义和数据索引等信息分开存储,.frm格式的文件用来描述表的定义,.ibd的文件用来存储数据 磁盘上存储成三个文件,.frm和InnoDB一样,.myd格式的文件用来存储数据,.myi格式的文件用来存储索引文件。
需要较多的内存和存储空间,会在内存中创建缓冲池用于高速缓冲数据和索引 可被压缩,占用空间很小(动态表,静态表,压缩表)
可以拷贝数据文件,进行备份,大数据量时很难顶 数据以文件的形式存储,跨平台转移方便
支持事务,外部键,具有事务,回滚和崩溃修复能力的事务安全(ACID)型表 MyISAM强调的是高性能,所以不支持事务,每次查询具有原子性,执行速度高于InnoDB
支持行级锁,提高了并发性(行锁只在where的主键是有效的,非主键的where也会锁全表) 只支持表级锁,CRUD都会加表级锁,如果加锁的表满足insert并发的情况下,可以进行数据插入(尾部插入新数据)
不支持FULLTEXT的全文索引(可以用插件实现,性能更好) 支持FULLTEXT的全文索引
支持主键,如果没有设置主键或者非空的唯一索引,会自动生成一个6字节的主键(不可见) 没有主键和索引的存在,索引就是
B+树的叶子节点data存放的是行数据 B+树的叶子节点data存放的是数据的地址
聚集索引 非聚集索引

3. 聚集索引和非聚集索引

3.1 聚集索引:

  1. 数据库表行数据的物理顺序和逻辑顺序相同,聚集索引有更快的查询速度。
  2. 为了维持这个顺序,每当数据库表中插入一条数据的时候,就会进行大量的移位操作。
  3. 一个表只能有一个聚集索引。

3.2 非聚集索引

  1. 数据库表行数据的物理顺序与逻辑顺序不符,插入删除更具有方便性。
  2. 一个表可以有多个非聚集索引

4. B树和B+树的区别

B树和B+树都是应用在数据库索引上的,都是多路平衡搜索树。

4.1 B树(M阶B树)

  1. 任意非叶子结点最多有M个儿子,且M>2
  2. 根节点的儿子为K,2<=K<=M,非叶子结点的儿子数为P,M/2(向上取整)<=P<=M
  3. 非叶子节点的关键字数为儿子数减1
  4. 所有叶子结点位于同一层
  5. 关键字分布在整棵树中,每个关键字只出现在一个节点中
  6. 搜索可能在非叶子节点结束
  7. 搜索性能相当于做二分查找

4.2 B+树(M阶B+树)

B+树是B树的变形,查询性能更好

  1. 非叶子结点含有关键字,这些关键字不保存数据,只用来作为索引,所有数据都保存在叶子节点中
  2. 所有叶子节点包含全部关键字信息,叶子节点组成了一个由关键字从小到大排序的链表
  3. B+树一般有两个指针,一个指向根节点,一个指向最小叶子节点
  4. 同一个数字会在不同的结点出现,根节点的最大元素就是B+树的最大元素

4.3 B+树相对于B树的优势

  1. B+树非叶子结点不存储数据,磁盘页可以容纳更多结点
  2. B+树每次查找都要找到叶子节点,而B树任何结点都有可能,所以B+树更稳定
  3. B+树的范围查找直接遍历链表就可,而B树需要重复的遍历树

4.4 B+树的搜索时间

O(Math.Log(N,M))
N – 记录总数
M – 阶数

5. 事务的四个特性

ACID

  1. 原子性:指事务是一个原子性的操作,其中的各项操作要么全都成功,要么全都失败
  2. 一致性:指事务处理前后的数据库必须保证一致性
  3. 隔离性:指并发情况下,为每个用户都创建一个事务,每个事务之间不能相互干扰,事务之间要相互隔离
  4. 持久性:指事务提交后,对数据库的更改是永久性的,数据不会因为外界原因而丢失。
发布了56 篇原创文章 · 获赞 3 · 访问量 1190

猜你喜欢

转载自blog.csdn.net/qq_40788718/article/details/103179037