
数据库
文章平均质量分 54
关于数据库的学习分享
void丿
勤于思考,善于观察,勇于创新(指希望达到的状态)
通过讲清楚一个知识来学习这个知识
展开
-
Redis多机模式(1)-主从复制
Redis的复制主要为两部分:同步和命令传播同步:将从服务器的数据库状态与主服务器保持一致.命令传播:用于在主服务器的数据被修改后,让从服务器的数据与主服务器保持一致.以上和本篇内容都参考于《Redis设计与实现》,但我觉得同步和命令传播两者本质都是数据同步,只不过前者是全量同步,后者是增量同步。复制功能的旧版实现同步主服务器接受从服务器的SYNC命令后执行BGSAVE命令,在后台生成一个RDB文件,并使用一个缓冲区记录从此刻开始执行的所有写命令主服务器BGSAVE执行完毕后,将生成的原创 2022-04-14 01:11:08 · 889 阅读 · 0 评论 -
MySQL是如何进行主从同步的?
MySQL主从同步流程图主要步骤:Master接受写请求,数据落磁盘的同时,记录操作到bin-log(binary-log,二进制形式的数据日志文件)当Master存在Slave的连接时,启动一个bin-log dump线程监听bin-log的变化。当bin-log dump线程监听到bin-log的变化时,将变化的数据推送给Slave。Slave的I/O线程接收bin-log的变化通知,并将其写入到本地的relay-log。Slave的SQL线程从relay-log拉取数据,并写入到本地的原创 2021-12-22 00:02:59 · 994 阅读 · 2 评论 -
ES数据类型
ES数据类型原创 2021-12-11 17:24:20 · 1880 阅读 · 0 评论 -
redis的过期策略
前言:Redis的所有数据结构都可以设置过期时间,而redis内部有一系列策略来回收已经过期的数据结构。过期的key集合redis实现了一套事件触发模型,主要处理两种事件:I/O事件和定时事件。redis会将设了过期时间的key都存入一个独立的字典中。一是启动定时事件去遍历字典,二是当发生I/O事件(如读、写命令)时,就使用惰性策略去删除过期的key定时删除是集中处理,惰性删除是零散处理。扫描策略Redis默认会每秒进行十次过期扫描,每次不会遍历整个字典,而是采用一种贪心策略。从过期字典原创 2021-03-27 17:39:28 · 183 阅读 · 0 评论 -
redis事件模型-学习小结
前言:最近写的一个项目用到了redis中的list实现一个简单的队列去异步执行计算任务,开发的过程中想起了redis的线程模型天然保证了list中的消息不会被多次/重复消费,但又有点生疏了,借此复习一下redis的线程模型。redis线程模型概览:① 由多个socket接收来自客户端的各种请求,例如:建立通道,返回data,发送redis指令等。② socket由I/O多路复用程序进行监听,redis中的I/O多路复用机制采用的是非阻塞的epoll模型。③ 将执行命令顺序压入队列,由文件事件分派器原创 2020-12-29 01:08:52 · 512 阅读 · 0 评论 -
如何优化一条很慢的sql----个人总结
1.通过慢查询日志定位到具体那一条SQL通过配置两个参数来输出慢查询sql:① set global slow_query_log = on (开启慢查询日志)② set global long_query_time = 1000 (设置sql执行时间超过多少就打印日志,以毫秒为单位,所以这里是超过1秒的sql语句都会输出在slow log)默认输出在mysql安装路径的data路径下可以看到具体的查询消耗时间,阻塞时间,扫描行数,返回的行数等2. 分析慢查询的原因分析Explain:&原创 2020-08-02 00:25:16 · 2722 阅读 · 0 评论 -
Redis持久化--个人总结
RDB补充:bgsave中,父进程对数据进行写操作时,会采用OS的COW机制对数据段页面分离,当父进程对其中一个页面进行修改时,会将被共享的页面复制一份分离出来,然后对这个复制的页面进行修改。AOF前言: AOF持久化以独立日志的方式记录每次写命令,解决了持久化的实时性问题。混合持久化《Redis深度历险》:重启Redis时,我们很少使用RDB来恢复内存,因为会丢失大量数据。我们通常使用AOF日志重放,但是重放AOF日志性能相对RDB来说慢很多,这样在Redis实例很大的时候,启动需要花费很长原创 2020-07-19 23:05:44 · 188 阅读 · 0 评论 -
MySQL查询优化器----个人整理
MySQL查询优化器基于(成本/规则)的优化基于成本的优化基于成本的优化原创 2020-07-03 01:36:09 · 316 阅读 · 0 评论 -
MySQL数据库---四种隔离级别详解
前言· 这几天看了掘金的《从根上理解MySQL》对MySQL的理解像是打开了新世界的大门,强烈推荐给想进一步学习MySQL的兄弟们。大佬轻踩。ps:貌似只有pdf版,需要电子资源的可百度可私信我。pps:本文仅仅是对四大隔离级别及其底层实现做个概括,想详细了解的兄弟还是建议阅读《从根上理解MySQL》。数据库的四大特性在此之前有必要复习一下数据的大四特性:也就是ACID,化学里的酸~·...原创 2020-04-30 22:09:19 · 1018 阅读 · 0 评论 -
什么是数据池?-简单的例子
什么是数据池?前言:关于数据池的概念简单数据池的实现不使用数据池的情况:使用数据池的情况:前言:本文参考:https://segmentfault.com/a/1190000013308078关于数据池的概念连接池用于创建和管理数据库连接的缓冲池技术,缓冲池中的连接可以被任何需要他们的线程使用。当一个线程需要用JDBC对一个数据库操作时,将从池中请求一个连接。当这个连接使用完毕后,将返回...原创 2020-03-26 15:52:33 · 8689 阅读 · 2 评论