Mysql学习笔记2

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

存储引擎

1.体系结构

        连接层,服务层,引擎层,存储层

2.存储引擎简介

show engines; create table account engine=innodb;

InnoDB: 支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票), 那选择InnoDB有很大的优势。如果需要频繁的更新、删除记录,也要考虑InnoDB的索引锁定

MyISAM: MyISAM拥有较高的插入数据和查询速度,但不支持事务处理及行级锁,而且MyISAM不支持崩溃修复功能以及主键自动增长。 当MyISAM数据表执行写操作时,会优先将非索引列数据写入到内存中,然后再同步到磁盘上,这样会导致写操作效率低。

Memory: 所有的数据都存储在内存中,数据的读写速度非常快,但是安全性不高。MySQL服务停止后,内存中的数据会全部丢失。

3.存储引擎特点

InnoDB:支持事务,行级锁,外键约束

MyISAM:不支持事务,表级锁,不支持外键约束

MEMORY:支持事务,表级锁,不支持外键约束

4.选择合适的存储引擎

InnoDB:如果需要事务支持,考虑InnoDB

MyISAM:如果需要频繁的更新、删除操作,考虑MyISAM

MEMORY:如果需要数据的安全性,考虑MEMORY

索引

1.索引简介

索引是帮助MySQL高效获取数据的数据结构。(有序数据结构)

2.索引的优缺点

优点:提高数据检索的效率,降低数据库的IO成本(提高查询效率,提高排序效率)

缺点:索引需要占用物理空间,更新表时,索引也需要动态维护,降低数据的维护速度

3.索引结构

B+树索引 : B+树索引是MySQL数据库中使用最频繁的索引类型,它按照字段的值的大小顺序存储;(InnoDB)

Hash索引:Hash索引是根据Hash算法来实现的,它存储的是Hash码,而不是存储索引的值,所以它不支持范围查找,也不支持排序。(Memory)

R-tree(空间索引):R-tree索引是MySQL数据库中使用的一种空间索引,它支持范围查找和排序。(MyISAM)

Full-text(全文索引):Full-text索引是一种特殊类型的索引,它用于在文本字段中搜索关键字,而不是直接比较索引 (5.6版本之后支持InnoDB,MyISAM)(ES)

为什么InnoDB存储引擎选择使用B+树索引结构? InnoDB存储引擎是基于B+树索引结构构建的,B+树索引按照键值的顺序存储,树的所有叶子节点构成一个单向 链表,叶子节点包含了行记录的完整数据,索引可以有效的提升数据库的检索速度

4.索引分类

单值索引:一个索引只包含单个列,一个表可以有多个单值索引

唯一索引:索引列的值必须唯一,但允许有空值

复合索引:一个索引包含多个列

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值