随笔分类 -  数据库

摘要:1 前言 数据库中的锁,是一个很大的问题,从哪看起呢?该怎么看呢?所以在看锁之前,了解一些相关的前置知识,然后再去细看不同的场景下会加什么样的锁方便你快速理解。 官网,当然我们这里看的 引擎是 InnoDB 哈,那我们从以下几个问题看起: (1)数据库中的锁有哪些(怎么知道呢,网上的文章五花八门的各 阅读全文
posted @ 2024-02-28 09:05 酷酷- 阅读(143) 评论(0) 推荐(0)
摘要:1 前言 可能大家平时会查看数据库中的一些原始信息,比如数据库有哪些表,表有哪些字段呀,都是什么类型呀,甚至每个表所占的空间大小,索引的空间大小、索引访问的次数呀等等,其实 PgSQL 都有对应的系统目录给我们,这节我们就来看看。 2 层次 在看元信息前,我们先了解一下数据的一个层次: 可以看到,我 阅读全文
posted @ 2024-02-23 08:47 酷酷- 阅读(74) 评论(0) 推荐(0)
摘要:1 前言 DBSyncer,不知道大家用没用过,我之前看过,今儿空了,来试试。 地址:https://gitee.com/ghi/dbsyncer 地址如上,主要是用于数据库层面的同步,废话不多说,我简单玩了玩先,还真不错,空了我再细看看。 2 数据同步例子 2.1 定义目标 这是我两个数据库的两张 阅读全文
posted @ 2024-02-19 22:07 酷酷- 阅读(2619) 评论(0) 推荐(0)
摘要:1 前言 Redis,我们做开发的想必都用过,他是一种缓存,主要用于快速响应结果嘛。比如我们要获取商品的详情,有日销量、月销量、库存数量、评价数量,这些数据都在Redis 缓存中,那么我们是要拿四趟?还是一趟呢?当然是一趟最好呀。接下来我们来看看为什么我们要一趟这么做,以及怎么做。 2 为什么需要批 阅读全文
posted @ 2024-02-16 16:34 酷酷- 阅读(4266) 评论(0) 推荐(0)
摘要:1 前言 嘿嘿,今天看见一篇 PGSql 的基于数据库层面的日志同步,简单也跟着试了一下,暂时还没细细探索哈。 2 前置准备 (1)修改postgresql数据库配置,通过复制流技术监听增量事件,基于内置插件pgoutput、test_decoding实现解析wal日志 修改postgresql.c 阅读全文
posted @ 2023-12-08 22:15 酷酷- 阅读(333) 评论(0) 推荐(0)
摘要:1 前言 这节我们复习下 Redis 的配置哈,配置也是学习的一部分,配置也能体现 Redis 设计者们的一些思路哈。 2 配置说明 1 ################################### NETWORK ################################### 2 阅读全文
posted @ 2023-09-06 07:02 酷酷- 阅读(698) 评论(0) 推荐(0)
摘要:1 前言 上节我们看了主从模式,这节我们来看看哨兵模式哈。 2 为什么要有哨兵机制? 在 Redis 的主从架构中,由于主从模式是读写分离的,如果主节点(master)挂了,那么将没有主节点来服务客户端的写操作请求,也没有主节点给从节点(slave)进行数据同步了。 这时如果要恢复服务的话,需要人工 阅读全文
posted @ 2023-06-12 07:12 酷酷- 阅读(234) 评论(0) 推荐(0)
摘要:1 前言 前面我们看了持久化的两种方式 AOF 和 RDB,这两个持久化技术保证了即使在服务器重启的情况下也不会丢失数据(或少量损失)。 不过,由于数据都是存储在一台服务器上,如果出事就完犊子了,比如: 如果服务器发生了宕机,由于数据恢复是需要点时间,那么这个期间是无法服务新的请求的; 如果这台服务 阅读全文
posted @ 2023-06-12 06:52 酷酷- 阅读(94) 评论(0) 推荐(0)
摘要:1 前言 通常针对服务器的访问速度越来越差,基本性能瓶颈是在数据库,那么我们通常会给服务器加上 Redis,让其作为数据库的缓存或者本地缓存,这样,在客户端请求数据时,如果能在缓存中命中数据,那就查询缓存,不用在去查询数据库,从而减轻数据库的压力,提高服务器的性能。 缓存无非就是对数据的一份Copy 阅读全文
posted @ 2023-06-08 08:15 酷酷- 阅读(143) 评论(0) 推荐(0)
摘要:1 前言 用户的数据一般都是存储于数据库,数据库的数据是落在磁盘上的,磁盘的读写速度可以说是计算机里最慢的硬件了。 当用户的请求,都访问数据库的话,请求数量一上来,数据库很容易就奔溃的了,所以为了避免用户直接访问数据库,会用 Redis 作为缓存层。 因为 Redis 是内存数据库,我们可以将数据库 阅读全文
posted @ 2023-06-07 07:35 酷酷- 阅读(108) 评论(0) 推荐(0)
摘要:1 前言 我们都知道Redis中的key是可以设置过期时间的,那么问题来了,比如到期后是怎么被删除的呢?就是Redis 的「内存淘汰策略」和「过期删除策略」,这两个机制虽然都是做删除的操作,但是触发的条件和使用的策略都是不同的。我们这节就来看看哈。 2 过期时间 如何设置过期时间? 先说一下对 ke 阅读全文
posted @ 2023-06-07 07:10 酷酷- 阅读(90) 评论(0) 推荐(0)
摘要:1 前言 这节我们来看看持久化中需要关注的一个问题哈,即Redis 的大 Key 对持久化有什么影响。 2 大 Key 对 AOF 日志的影响 先说说 AOF 日志三种写回磁盘的策略 Redis 提供了 3 种 AOF 日志写回硬盘的策略,分别是: Always,这个单词的意思是「总是」,所以它的意 阅读全文
posted @ 2023-06-07 06:32 酷酷- 阅读(54) 评论(0) 推荐(0)
摘要:1 前言 这节我们来看看持久化方式中的RDB哈。 2 RDB 快照 虽说 Redis 是内存数据库,但是它为数据的持久化提供了两个技术。 分别是「 AOF 日志和 RDB 快照」。 这两种技术都会各用一个日志文件来记录信息,但是记录的内容是不同的。 AOF 文件的内容是操作命令; RDB 文件的内容 阅读全文
posted @ 2023-06-06 23:33 酷酷- 阅读(173) 评论(0) 推荐(0)
摘要:1 前言 这节我们来看看持久化方式中的AOF哈。 2 AOF 日志 试想一下,如果 Redis 每执行一条写操作命令,就把该命令以追加的方式写入到一个文件里,然后重启 Redis 的时候,先去读取这个文件里的命令,并且执行它,这不就相当于恢复了缓存数据了吗? 这种保存写操作命令到日志的持久化方式,就 阅读全文
posted @ 2023-06-06 23:15 酷酷- 阅读(84) 评论(0) 推荐(0)
摘要:1 前言 Redis为什么快呢?除了它是内存数据库,使得所有的操作都在内存上进行之外,还有一个重要因素,它实现的数据结构,使得我们对数据进行增删查改操作时,Redis 能高效的处理。 因此,这次我们就来好好聊一下 Redis 数据结构。 注意,Redis 数据结构并不是指 String(字符串)对象 阅读全文
posted @ 2023-06-06 17:31 酷酷- 阅读(269) 评论(0) 推荐(0)
摘要:1 前言 我们都知道 Redis 提供了丰富的数据类型,常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)。 随着 Redis 版本的更新,后面又支持了四种数据类型: BitMap(2.2 版新增)、HyperLogLog(2.8 版新增) 阅读全文
posted @ 2023-06-05 18:05 酷酷- 阅读(411) 评论(1) 推荐(1)
摘要:1 前言 这节我们来看看MySQL 的 Buffer Pool哈。 2 为什么要有 Buffer Pool? 虽然说 MySQL 的数据是存储在磁盘里的,但是也不能每次都从磁盘里面读取数据,这样性能是极差的。 要想提升查询性能,加个缓存就行了嘛。所以,当数据从磁盘中取出后,缓存到内存中,下次查询同样 阅读全文
posted @ 2023-06-02 07:43 酷酷- 阅读(414) 评论(0) 推荐(0)
摘要:1 前言 这节我们来看看MySQL里的各种日志哈。 2 概述 之前我们知道了一条查询语句经历的过程,这属于「读」一条记录的过程,如下图: 那么,执行一条 update 语句,期间发生了什么?,比如这一条 update 语句: UPDATE t_user SET name = 'xxx' WHERE 阅读全文
posted @ 2023-06-02 07:31 酷酷- 阅读(398) 评论(0) 推荐(0)
摘要:1 前言 最近碰上个需求,因为那个报表工具只能写SQL,所以需要用SQL计算每条数据占总和的百分比,比如下边这样,要对每个人的分数计算占总和的百分比。 2 问题思路 我们首先要有个思路: 每行后边要先统计一个总数(用以求出占比) 占比存在取舍,会导致总的占比和大于或者小于100%,所以这里我们需要用 阅读全文
posted @ 2023-06-01 15:29 酷酷- 阅读(246) 评论(0) 推荐(0)
摘要:1 前言 MySQL 会发生死锁么,当然会,有锁的地方,有多个事务的地方,就会出现互相争夺对方资源的情况,就会产生僵持,比如我们的业务场景:主要逻辑就是新增订单、修改订单、查询订单等操作。然后因为订单是不能重复的,所以当时在新增订单的时候做了幂等性校验,做法就是在新增订单记录之前,先通过 selec 阅读全文
posted @ 2023-05-26 13:36 酷酷- 阅读(251) 评论(0) 推荐(0)