数据库
搬砖升级打怪
这个作者很懒,什么都没留下…
展开
-
分库分表
分库分表什么是分库分表?为什么要分库分表?随着系统的不断运行和升级,存储在关系型数据库的数据量会越来越大,可能亿级,这会给数据库系统的访问带来了压力;而且此时,表的查询效率会很低。随着数据量增大,表索引的更新成本也越大,数据的写效率就会越低。什么是分库分表?其实就是数据切分,将表分成多张表,存储在同一个或者不同的数据库中来减少系统压力。数据的切分方式:水平切分:按照分片算法将表分成结构相同的多个表,分布在集群的不同节点上,从而缓解单个数据库的压力。垂直切分:按照列的关系密集度将表拆分成原创 2020-08-12 22:50:17 · 171 阅读 · 0 评论 -
MySQL的事务控制
MySQL的事务控制数据库的事务是指作为单个逻辑工作单元执行的一系列操作要么全部执行要么全部不执行。事务的概念事务:一组sql语句回退:撤销指定的sql语句提交:提交指定的SQL语句保留点:目的是为了支持不用全文回退,只要回退到保留点即可,savepoint 保留点名字。MySQL默认是执行自动提交的,如果需要显示的声明提交或者回退,是需要先明确事务管理的:start transaction事务的四个特性ACID原子性(Atomic):指对数据库的操作要么全部一起执行,要么全部不执原创 2020-08-12 21:46:37 · 137 阅读 · 0 评论 -
MySQL的数据库引擎
MySQL的数据库引擎InnoDB使用B+树作为底层数据结构:B+树的叶子节点存储的是每一条记录(主键索引或者聚簇索引),查询效率高,一次索引叶子节点存储的是主键的值,查询效率较高,但是因为涉及到回表,所以比聚簇索引慢。它先根据其他索引即聚簇索引获取到主键值,然后在根据主键值去获取整个完整的记录,这个过程就是回表。但是,如果覆盖索引的话就可以避免多次查询,这也是索引优化的方式之一。覆盖索引就是指你查询的数据全部包含在索引列中,也就是select语句后面的列全部包含在你where关键词后面的列中原创 2020-08-12 21:15:50 · 109 阅读 · 0 评论 -
B+树及索引
B+树B+树是基于B树和叶子节点顺序访问指针实现的。B树是一棵平衡查找树,其所有的叶子节点都在同一层。B+树的节点从左至右,非递减排序。即左指针指向的节点<=中间指针指向节点<=右指针指向节点。操作查找:从根节点进行二分递归查找,直至找到叶节点,然后在叶子节点上进行二分查找,直至确认元素位置插入:因为元素的插入会破坏B+树的平衡性,所以需要对树进行分裂、合并和旋转来维护平衡性特点B+树的有序性决定了它较快的查找速度,并且还适用于排序和分组。与红黑树进行比较红原创 2020-08-10 21:28:15 · 226 阅读 · 0 评论