MySQL
文章平均质量分 65
鱼儿爱丫头
博学慎思,参天尽物。
展开
-
MySQL之索引
哈希索引哈希索引是基于哈希表实现的,只有精确匹配索引所有列的查询才有效,对于每一行数据根据索引列计算出hashcode,存入hash表中,同时保存指向每一行数据的指针。在MySQL中只有memory显式的支持hash索引,是默认的索引类型,但是也支持B树索引,当然Memory中的hash索引是支持非唯一键值索引的,如果hashcode相同的话会以链表的形式进行存储。但是hash索引有比较多的问题,首先是无法通过键值直接查找到数据,而且存储也不是顺序的,所以就无法用于排序,同时不支持模糊索引列查询,因为建原创 2021-11-14 22:39:28 · 645 阅读 · 0 评论 -
MySQL之MVCC
事务的四大特性原子性(Atomicity)事务中的所有操作要么全部成功,要么全部失败一致性(Consistency)事务必须使数据库从一个一致性状态转变成另一个一致性状态,比如A和B一共有1000块钱,不管事务中两个人之间如何转账,事务结束的时候两个人的钱一共还是1000块。隔离性(Isolation)多用户并发访问的时候,事务之间是隔离的,相互之间不影响。持久性(Durability)事务一旦提交了,那么对数据库中数据的改变就是永久性的了。事务的隔离级别Read uncommitted原创 2021-10-20 21:18:30 · 73 阅读 · 0 评论 -
MySQL之聚簇索引与非聚簇索引
聚簇索引Innodb在进行数据存储的时候,一定会将数据和表的某一列绑定到一起,这个列可以是主键,如果没有主键选择唯一非空列,如果都没有,引擎会隐式的使用一个6字节的rowid作为这个列,根据这样的列来创建索引,并且一个表只有一个聚簇索引。非聚簇索引也称为二级索引,非聚簇索引的叶子节点中不再是整行记录,而是聚簇索引的id值,所以查询时使用二级索引的时候,通常需要进行回表。myisam存储引擎中只有非聚簇索引回表当使用二级索引进行查询的时候,因为二级索引的叶子结点上存储的是聚簇索引中的id值,所以需原创 2021-10-18 22:35:41 · 146 阅读 · 0 评论 -
MySQL之索引原理与数据结构
索引是为了快速查找数据的一种有序的数据结构。不选择二叉树作为索引的存储结构的原因二叉树的每个节点有2个子节点,当插入数据量较大的时候会导致树非常高,增大了IO的次数,导致读取数据变慢。而选择好的数据结构来减少IO次数是高效查询的关键。因此,B树与B+树应运而生。B树B树上的节点上存在数据,假设每个节点对应一个磁盘块,之多可以存储16条数据,那么三层高的树就能存16的三次方条数据,但是每一条数据都包含了指针,key和data,所以占用空间很大,能存储的的数据就相对来说比较少,因此B+树应运而生。B原创 2021-10-17 21:05:56 · 147 阅读 · 0 评论 -
MySQL之逻辑架构
MySQL逻辑架构图结构分析1、连接层**介绍:**提供客户端和连接服务,主要完成连接处理,权限认证,和相关的安全方案,同时这层提供了连接池,为连接的客户端提供线程,同时可以实现基于SSL的安全连接,为每个连接的客户端提供操作权限。**作用:**控制数据库的连接与关闭,为客户端分配数据库线程资源。2、业务逻辑处理层**介绍:**该层主要完成核心服务的主要功能,包括SQL接口,存储过程触发器,视图,SQL解析,优化,缓存等。在该层服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定原创 2021-10-13 20:02:07 · 43 阅读 · 0 评论