
数据库技术
文章平均质量分 90
程序猿小乙
一个技术码农,分享自己这些年的一些职场收获,技术内容。
展开
-
Redis - 对象结构
Redis 使用对象存储数据库中的键和值,每当在 Redis 中创建一个新的键值对时,都会创建两个对象:一个是键对象,另一个是值对象。其中,Redis 的每种对象都由对象结构和对应编码的数据结构组合而成,而每种对象类型对应若干编码方式,不同编码方式对应的底层数据结构也会有所不同。原创 2023-04-17 08:57:35 · 110 阅读 · 0 评论 -
Redis - 基础数据类型
根据官网文档的解释,可以了解 Redis 基础数据类型的一些基本信息:对于 Redis 来说,存储的 key 值都是字符串类型,讨论数据类型的时候,指的都是存储的 value 值。这里主要是包括 5 种数据类型:String、List、Set、Hash、SortedSet。如果想要了解 Redis 基础数据类型支持的命令,可以查看官方文档,筛选对应数据类型即可。原创 2023-04-09 07:46:28 · 879 阅读 · 0 评论 -
Redis - 介绍与使用场景
Redis 的全称是 Remote Dictionary Server,是一个使用 C 语言编写的、开源的(BSD 许可)高性能非关系型(NoSQL)的键值对数据库。Redis 的数据是存储在内存中的,所以读写速度非常快,被广泛应用于缓存方向,当然也有持久化数据库的用法。原创 2023-04-08 11:42:22 · 1102 阅读 · 0 评论 -
MongoDB - 分片简介
高数据量和高吞吐量的数据库应用会对单机的性能造成较大压力,大的查询会将单机的 CPU 耗尽,大的数据量对单机的存储压力较大,最终会耗尽系统的内存压力转移到磁盘 IO 上。垂直扩展:增加更多的 CPU 和存储资源来扩展容量水平扩展:将数据集分布在多个服务器上MongoDB 的分片就是水平扩展的体现,使用分片减少了每个分片需要处理的请求数。通过水平扩展,集群可以提高自己的存储容量和吞吐量。原创 2023-04-07 08:38:54 · 573 阅读 · 0 评论 -
MongoDB - 副本集简介
在 MongoDB 中,副本集指的是一组 MongoDB 服务器实例掌管同一个数据集,实例可以在不同的机器上。其中一个用于处理写操作的是主节点(Primary),还有多个用于保存主节点的数据副本的从节点(Secondary)。如果主节点崩溃了,则从节点会从其中选取出一个新的主节点。副本集保证数据在生产部署时的冗余和可靠性,通过在不同的机器上保存副本来保证数据不会因为单点损坏而丢失,能够随时应对数据丢失、机器损坏带来的风险。原创 2023-04-06 09:46:47 · 1824 阅读 · 0 评论 -
MongoDB - 模式设计
同一个应用程序连接的数据库可以根据业务进行划分,也许可以将高价值的业务数据存储在 SSD 上,或者是使用 RAID10 进行存储,而低价值的数据可以存储在 RAID0 上。但是在更改时仅需修改一处地方,不需要担心破坏数据的完整性。同样的一致性问题在 MongoDB 拥有副本集时也会出现,副本节点的数据与主节点的数据总是会有时间差,高并发的请求同样存在读取到旧数据的风险。设计模式时最需要关注的就是数据库的读操作,在数据库运行过程中,应尽量减少查询的数量,这就需要在设计时确保一起查询的数据存储在同一个文档中。原创 2023-04-05 10:20:27 · 501 阅读 · 0 评论 -
MongoDB - 数据模型的设计模式
官方文章的地址是,其中汇总了 12 种设计模式及使用场景。近似值模式(Approximation Pattern)属性模式(Attribute Pattern)桶模式(Bucket Pattern)计算模式(Computed Pattern)文档版本控制模式(Document Versioning Pattern)扩展引用模式(Extended Peference Pattern)异常值模式(Outlier Pattern)原创 2023-04-04 08:50:19 · 1330 阅读 · 1 评论 -
MongoDB - 事务支持
事务是数据库中处理的逻辑单元,每个事务中包括一个或多个数据库操作,既可以是读操作,也可以是写操作。ACID 是一个“真正”事务所需要具备的一组属性集合,指的是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。原子性指的是,事务中的所有操作要么都被应用,要么都不被应用。一致性指的是,如果数据库在执行事务之前是一致性状态,那么在事务执行之后,无论事务是否成功,数据库也应该是一致性状态。原创 2023-04-03 09:18:20 · 907 阅读 · 0 评论 -
MongoDB - 聚合查询
MongoDB 的聚合框架基于管道的概念:首先从集合中获取到输入,然后将输入的文档传递到一个或多个阶段,每个阶段都将之前阶段输出的内容作为输入,最终得到一个聚合结果作为输出。当然,其真正的优势是,可以按照按需生成的物化视图(materialized view),在管道运行的阶段,输出到集合的内容会进行增量更新。这里的数组提取指的是提取数组中的某个元素,现在能支持到的就是提取出数组中的前 n 个元素、后 n 个元素。这里的算术运算不是统称的四则运算,指的是与数学相关的运算,如平均值、求和等。原创 2023-04-02 11:36:15 · 1417 阅读 · 0 评论 -
MongoDB - 索引知识
索引最常用的比喻就是书籍的目录,查询索引就像查询一本书的目录。索引支持 MongoDB 查询的高效执行。如果没有索引,MongoDB 必须扫描集合中每一个文档,以选择与查询语句相匹配的文档。如果查询存在适当的索引,MongoDB 就可以使用索引来限制它扫描的文档数。索引数据通过 B 树来存储,从而使得搜索的时间复杂度为 O(logn)原创 2023-04-01 11:50:20 · 677 阅读 · 0 评论 -
MongoDB - 增删改查
的使用,其是一种特殊类型的更新:如果找不到与筛选条件相匹配的文档,则会以这个条件和更新文档为基础来创建一个新文档;如果找到了匹配的文档,则进行正常的更新。对于游标,客户端可以限制结果的数量,跳过一些结果,按任意方向的任意键组合对结果进行排序等操作。第二个参数用于仅返回指定的键,既可以节省网络传输的数据量,也可以减少客户端解码文档的时间和内存消耗。运算符,它的作用是,只会在插入文档时设置字段的值,在后续的更新时不对其进行更改。同样的,设置查询条件时,MongoDB 提供了查询运算符支持更多的查询方式。原创 2023-03-31 10:08:48 · 488 阅读 · 0 评论 -
MongoDB - 入门指南
和 SQL 的表不同,集合是动态模式,不需要在读写数据前创建模式就可以使用,集合中的文档也可以拥有不同的字段,随时可以任意增减某个文档的字段。在 shell 中使用函数之前,在不使用括号的情况下输入函数名,这样会打印出函数的源代码,这是一个可以查看函数具体行为的好方法。在更实际一些的场景中,使用此脚本可以设置全局变量,或者为长名称设置一个简短的别名,也可以重写内置函数。使用 shell 时,编辑多行的时候不能再编辑前面的行,这对于较大的代码块或对象非常不友好。文档中的键值对是有序的,不同序则是不同文档。原创 2023-03-30 09:47:29 · 700 阅读 · 0 评论 -
MongoDB - 简单了解
NoSQL 是一种非关系型数据库管理系统,不需要固定的架构,可以避免 JOIN 连接,并且易于扩展。NoSQL 常用于具有庞大数据存储需求的分布式数据存储,通常是大数据和实时 Web 应用程序等场景。对于海量数据,使用 RDBMS 处理是会导致系统响应时间变慢,一般的替代方案都是在负载增加时横向扩展到其他的服务器上,而 NoSQL 比关系型数据库更容易扩展。NoSQL 数据库不遵循关系模型NoSQL 数据库是无模式或具有宽松模式的数据库NoSQL 提供简单的 API 作为存储和查询。原创 2023-03-29 09:06:36 · 105 阅读 · 0 评论