浅谈MySQL引擎及索引

一、引擎

1.MySQL体系结构

![在这里插入图片描述](https://img-blog.csdnimg.cn/4c9

在这里插入图片描述

2.存储引擎简介

存储引擎就是存储数据、建立索引、更新/查询数据等技术实现的方式。存储引擎是基于表的,而不是基于库的,索引存储引擎也被称为表类型。
a.数据库建表时默认存储引擎是InnoDB
b.查看当前数据库支持的存储引擎
查看当前数据库支持的事务
语法

3.默认存储引擎

(1)介绍

InnoDB是一种兼顾可靠性和高性能事务通用存储引擎,在MySQL5.5之后,InnoDB是默认的MySQL的存储引擎,

(2)特点:

DML【增删改】操作遵循ACID模型,支持事务;
行级锁,提高并发访问性能;
支持外键约束,保证数据的完整性和正确性;

(3)InnoDB的逻辑结构:

page:是磁盘操作的最小单元
在这里插入图片描述

4、其他存储引擎

(1)、MySAM的特点

介绍:MySAM是MySQL早期默认的存储引擎。
特点
a、不支持事务和外键。
b、支持表级锁,不支持行级锁。
c、访问速度快。

(2)、Memory的特点

介绍:Memory存储数据时存储在内存中,由于受到硬件和断电对的影响,Memory只是用来当做临时表的存储和缓存来使用。
特点
a、内存存放
b、hash索引(默认)

(5)InnDB、MySAM和Memory的区别

在这里插入图片描述

(6)存储引擎的选择

在这里插入图片描述

二、索引

1、简介

在进行数据库查询操作且查询对象数据量庞大 我们可以选择添加索引来提高查询性能 。索引h可以更快的获取数据库的数据和结构 。类似于书本上的目录 。

2、分类

唯一索引:索引列中的值必须是唯一的,但是允许为空值。
主键索引:是一种特殊的唯一索引,不允许有空值。(主键约束,就是一个主键索引)。
组合索引:在表中的多个字段组合上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用,使用组合索引时遵循最左前缀集合。
普通索引:MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一 点。

3、索引的应用

在这里插入图片描述

4、索引的结构

(1)常见的几种索引

在这里插入图片描述

(2)存储引擎对索引的支持

在这里插入图片描述

(3)B+Three的了解

	innerDB的默认索引结构是B+tree来实现的

在这里插入图片描述

(4)Hash索引

采用 Hash 进行检索效率非常高,基本上一次检索就可以找到数据,而 B+ 树需要自顶向下依次查找,多次访问节点才能找到数据,中间需要多次 I/O 操作,从效率来说 Hash 比 B+ 树更快。

I、采用hsah索引可能会出现hash冲突的问题

我认为,Hash的进行存放索引和数据,是采用hash算法来经过计算再存储到hashtable(散列表又称哈希表),这样来看hash索引和hashmap集合的存储数据的形式是大致相等的,那么解决hashmap中的hash冲突的方法也应该适用于解决hash索引中的hash冲突的问题。纯属个人理解。

(5)小结

B+Three:支持范围查找,可以稳定查询。
Hash索引: 不支持大范围查找(hash索引指向的数据是无序的),支持精准范围查找。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值