数据库
文章平均质量分 95
OOC_ZC
OOC
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据库事务及实现
一、事务事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。MySQL 默认采用自动提交模式。也就是说,如果不显式使用START TRANSACTION语句来开始一个事务,那么每个查询都会被当做一个事务自动提交。2. ACID1. 原子性(Atomicity)事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,...原创 2019-04-19 00:40:25 · 627 阅读 · 0 评论 -
MySQL 数据库的文件
。原创 2019-06-27 23:09:02 · 476 阅读 · 0 评论 -
InnoDB 存储引擎的整体设计
一、概述InnoDB 是事务安全的MySQL存储引擎,其特点是行锁设计、支持MVVC、支持外键、提供一致性非锁定读。二、InnoDB 体系架构2.1 后台线程InnoDB 存储引擎是多线程的模型,后台有多个不同的线程负责处理不同的任务。2.1.1 Master ThreadMaster Thread 是一个非常核心的后台线程,负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏...原创 2019-06-26 23:22:54 · 369 阅读 · 0 评论 -
MySQL 扩展
一、概述MySQL 水平拓展的策略分为三个部分:复制拆分数据分片(sharding)二、复制最简单也最常见的向外扩展的方法是通过复制将数据分发到多个服务器上,然后将备库用于读查询。这种技术对于以读为主的应用很有效,它也有一些缺点,例如重复缓存等等。三、按功能拆分按功能拆分,每个节点只包含特定应用所需要的数据,各个部分无须共享数据,可以按功能区域进行划分。如果有数据交叉的需求,也...原创 2019-07-02 00:19:11 · 494 阅读 · 0 评论 -
Redis AOF 持久化
BGREWRITEAOF 命令用于异步执行一个 AOF 文件重写操作。重写会创建一个当前 AOF 文件的体积优化版本。即使 BGREWRITEAOF 执行失败,也不会有任何数据丢失,因为旧的 AOF 文件在 Bgrewriteaof 成功之前不会被修改。...原创 2019-04-29 16:03:10 · 234 阅读 · 0 评论 -
InnoDB 存储引擎的索引
一、InnoDB 索引分类索引是在存储引擎层实现的,而不是在服务器层实现的,所以不同存储引擎具有不同的索引类型和实现。如果索引太多,应用程序的性能可能会受到影响。而索引太少,也会对查询性能产生影响。InnoDB 支持三种索引:B+树索引、哈希索引、全文索引。一般机械硬盘每秒至少可以做100次IO,每次约需要0.01秒。可以使用EXPLAIN分析SQL语句的执行情况。B树和B+树的对比...原创 2019-05-11 12:10:07 · 647 阅读 · 0 评论 -
Redis RDB 持久化
RDB 持久化 (AppendOnly File)Redis 是内存数据库,如果不把内存中的数据库状态(所有非空数据库及其键值对)储存到硬盘中,当数据库进程退出,数据会消失。RDB 文件的创建与载入BGREWRITEAOF 命令用于异步执行一个 AOF 文件重写操作。重写会创建一个当前 AOF 文件的体积优化版本。即使 BGREWRITEAOF 执行失败,也不会有任何数据丢失,因为旧的...原创 2019-04-28 21:31:47 · 280 阅读 · 0 评论 -
MySQL 中常见的存储引擎
存储引擎特别注意的是,存储引擎是基于表的,而不是数据库。1. InnoDB是 MySQL 默认的事务型存储引擎,它被设计用来处理大量的短期事务,只有在需要它不支持的特性时,才考虑使用其它存储引擎。实现了四个标准的隔离级别,默认级别是可重复读(REPEATABLE READ)。在可重复读隔离级别下,通过 间隙锁(Next-Key Locking)防止幻影读。主索引是聚簇索引,在索引中保存...原创 2019-04-19 14:37:02 · 377 阅读 · 0 评论 -
Redis 对象的使用
一、概述Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串(STRING)、列表(LIST)、集合(SET)、散列表(HASH)、有序集合(...原创 2019-04-14 17:56:14 · 255 阅读 · 0 评论 -
Redis 事件
一、Redis 事件二、文件事件文件事件处理器以单线程运行。IO多路复用(IO Multiplexing):即经典的Reactor设计模式,Java中的Selector和Linux中的epoll都是这种模型。1. 文件事件处理器2. IO 多路复用程序的实现三、时间事件serverCron 也会调用定期删除过期键的函数。四、事件的调度与执行五、重点...原创 2019-04-21 21:15:06 · 357 阅读 · 0 评论 -
Redis 数据库及过期键的实现
一、服务器中的数据库二、键的过期Redis 可以设置键的生存时间或过期时间。RedisDB 结构中的expires字典保存了数据库中所有键的过期时间,称这个字典为过期字典。2.1 Redis 的过期键删除策略Redis 服务器实际使用惰性删除和定期删除两种策略。通过配合两种删除策略,可以在CPU时间和避免浪费内存空间之间取得平衡。2.2 惰性删除策略的实现2...原创 2019-04-21 19:04:33 · 388 阅读 · 0 评论 -
Redis 对象的实现
1、简单动态字符串简单动态字符串(simple dynamic string, SDS)是 Redis 的默认字符串表示,是一个可修改的字符串值。Redis 只使用C字符串作为字面量,在大多数情况下,Redis使用SDS作为字符串表示。STRING 的底层实现之一。1.1 SDS 的定义1.2 SDS 的空间预分配当SDS需要空间拓展时,程序会预先分配SDS一些额外的空间。即当SDS...原创 2019-04-16 13:55:22 · 285 阅读 · 0 评论 -
B树和B+树的对比
一、B树4阶指每个节点最多有4个子树。从查找效率考虑一般要求B树的阶数m >= 3。二、B+树-> B+树平衡三、B+树和B树的区别有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接(...原创 2019-04-09 15:44:13 · 489 阅读 · 0 评论 -
SQL 语句进阶
MySQL 的数据类型SELECT prod_name FROM products LIMIT 5,4; // 返回从5行开始的4行,即5~8行。(从0行开始)SELECT prod_id, prod_name FROM products ORDER BY prod_id DESC, prod_name LIMIT 3;// 按照 prod_id 降序排列,如果 prod_id ...原创 2019-04-08 17:05:55 · 510 阅读 · 0 评论 -
MySQL 基础
一、B+ Tree 原理原创 2019-04-17 23:36:14 · 300 阅读 · 0 评论 -
MySQL 复制
复制的工作原理复制是MySQL数据库提供的一种高可用高性能的解决方案,一般用来建立大型的应用。总体来说,replication的工作原理分为以下3个步骤:主服务器(master)把数据更改记录到二进制日志(binlog)中。从服务器(slave)把主服务器的二进制日志复制到自己的中继日志(relay log)中。从服务器重做中继日志中的日志,把更改应用到自己的数据库上,以达到数据的最终一...原创 2019-07-02 00:31:10 · 262 阅读 · 0 评论
分享