随笔分类 -  数据库

摘要:背景 在灾备、读写分离等数据同步场景中,同步延迟越低,越能应用在更多场景之中,RPO 和 RTO 最好能无限趋近于 0。 但是这需要下游数据库的平均吞吐能力大于上游平均吞吐能力。实际上一般备集群、只读集群的规格其实是小于主集群的,所以在并发度较低时,提升并发度是提升吞吐的有效手段。 MySQL 官方 阅读全文
posted @ 2023-02-10 00:09 Blue Mountain 阅读(156) 评论(0) 推荐(0)
摘要:# 应用场景 用于描述 LBS (Location-Based Service) 的数据结构,能够存储对象的经纬度信息,并且可以进行指定经纬度点指定距离范围内的查询、排序等能力。 # 类型介绍 是一种自定义结构,使用 GeoHash 的编码方法,即二分法进行经纬度的编码。 经纬度(116.37,39 阅读全文
posted @ 2023-01-05 22:28 Blue Mountain 阅读(35) 评论(0) 推荐(0)
摘要:# 聚合统计 ## 应用场景 统计手机 App 每天的新增用户数和第二天的留存用户数 ## 解决方案 由于Set 类型可以实现并集、交集、差集等能力。所以设计一个 Set 存所有的用户 Id, 并且每天新建一个 Set 存当天访问的用户Id,然后通过并集、交集、差集的计算得出结果。 方案关键点:这些 阅读全文
posted @ 2023-01-05 22:26 Blue Mountain 阅读(35) 评论(0) 推荐(0)
摘要:# 缺陷场景 在存储的 value 值较小且数量特别多的场景下,使用 String 类型进行存储会浪费大量的空间在维护元数据上,导致内存利用率下降。 # 原因分析 * Redis 在 vaule 设计上为了支持众多数据类型,会使用 RedisObject 来记录元数据以及指向数据位置的指针,大小为 阅读全文
posted @ 2023-01-04 12:08 Blue Mountain
摘要:# JAVA-JDBC [TOC] ​ 参考链接:https://www.yiibai.com/jdbc/jdbc_quick_guide.html ## JDBC is wtf? ​ JDBC代表Java数据库连接(**J**ava **D**ata**b**ase **C**onnectivit 阅读全文
posted @ 2018-09-03 15:22 Blue Mountain 阅读(800) 评论(0) 推荐(0)
摘要:### 事务的实现 ​ 事务隔离性由锁来实现。原子性、一致性、持久性通过数据库的redo log和undo log来完成。redo log称为重做日志,用来保证事务的原子性和持久性。undo log用来保证事务的一致性。 ​ redo和undo作用都是一种恢复操作。 - redo: - 恢复提交事务 阅读全文
posted @ 2018-08-30 19:30 Blue Mountain 阅读(450) 评论(0) 推荐(0)
摘要:## 锁 ​ 锁是数据库系统区分与文件系统的一个关键特性。为了保证数据一致性,必须有锁的介入。数据库系统使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性。 ### lock与latch ![](https://images2018.cnblogs.com/blog/657755/20 阅读全文
posted @ 2018-08-30 11:10 Blue Mountain 阅读(498) 评论(0) 推荐(0)
摘要:### 全文索引 #### 概述 ​ 通过索引字段的前缀进行查找,B+树索引是支持的,利用B+树索引就可以进行快速查询。 ```mysql SELECT * FROM blog WHERE content like 'xxx%'; ``` ​ 但是查询包含单词的情况,就无能为力了。所以需要进入全文检 阅读全文
posted @ 2018-07-23 20:10 Blue Mountain 阅读(425) 评论(0) 推荐(0)
摘要:## 索引与算法 ### INNODB存储引擎索引概述 ​ INNODB存储引擎支持以下几种常见的索引: - B+树索引 - 全文索引 - 哈希索引 ​ InnoDB存储引擎支持的哈希索引是自适应的。会根据表的情况自动添加 ​ B+树索引就是传统意义上的索引,这是目前关系型数据库系统中查找最为常用和 阅读全文
posted @ 2018-07-23 17:22 Blue Mountain 阅读(392) 评论(0) 推荐(0)
摘要:[TOC] ## 表 ​ 表就是关于特定实体的数据集合,是关系型数据库模型的核心。 ### 索引组织表 ​ 在INNODB存储引擎中,表都是根据主键顺序组织存放的。这种存储方式的表称为索引组织表。在INNODB存储引擎表中,每张表都有个主键,如果在创建表时没有显式地定义主键,则INNODB存储引擎会 阅读全文
posted @ 2018-07-12 14:21 Blue Mountain 阅读(576) 评论(0) 推荐(0)
摘要:[TOC] ## 文件 ​ 有以下类型文件 - 参数文件:告诉MYSQL实例启动时在哪里找到数据库文件,并且制定某些初始化参数。 - 日志文件:用来记录MYSQL实例对某种条件作出响应时写入的文件。 - socket文件:当用UNIX域套接字方式进行连接时需要的文件。 - pid文件:MYSQL实例 阅读全文
posted @ 2018-07-12 09:37 Blue Mountain 阅读(450) 评论(0) 推荐(0)
摘要:[TOC] ## InnoDB存储引擎 ### InnoDB存储架构 ![](https://images2018.cnblogs.com/blog/657755/201807/657755-20180710101336338-1279059702.png) ​ InnoDB存储引擎有多个内存块,可 阅读全文
posted @ 2018-07-12 09:35 Blue Mountain 阅读(765) 评论(0) 推荐(0)
摘要:[TOC] ## MySQL体系结构和存储引擎 ### 定义数据库和实例 - 数据库:物理操作系统文件或者其他形式文件类型的结合。在MYSQL数据库中,数据库文件可以是frm、MYD、MYI、ibd结尾的文件。当使用NDB引擎时,数据库的文件可能不是操作系统上的文件,而是存放在内存之中的文件,但是定 阅读全文
posted @ 2018-07-12 09:34 Blue Mountain 阅读(765) 评论(0) 推荐(0)
摘要:# Mybatis——Source阅读笔记 [TOC] 安利一个工具,可以直接生产单表的mapper xml,直接有GUI。可以直接运行 https://github.com/zouzg/mybatis-generator-gui ## 兵马未动,日志先行 ![](https://images201 阅读全文
posted @ 2018-05-15 11:15 Blue Mountain 阅读(368) 评论(0) 推荐(0)
摘要:#### 高级结果映射 ​ 一个超级复杂的联表查询语句 ```xml ``` ```xml ``` ​ resultMap元素有很多子元素和一个值得讨论的结构。下面是resultMap元素的概念视图。 - `constructor`- 用于在实例化类时,注入结果到构造方法中 - `idArg` - 阅读全文
posted @ 2018-05-15 11:09 Blue Mountain 阅读(389) 评论(0) 推荐(0)
摘要:# Mybatis [TOC] ## Mybatis参考资源 Mybatis官网手册:http://www.mybatis.org/mybatis-3/zh/getting-started.html ## Mybatis 使用 ### 肯定TM要跑起来 ​ 项目结构 ![](https://imag 阅读全文
posted @ 2018-05-15 10:03 Blue Mountain 阅读(919) 评论(0) 推荐(0)