背景Mongo组件持续运营过程中,发现“断言”异常,在排除人为操作和客户端异常等噪音后,仍然广泛分布在4系版本中。疑似有大鱼,于是集中力量专项治理。经分析,发现MongoCoreBug一项,MongoShellBug一项,已提交issue,并得到官网确认。其中SERVER72532影响了4.4.11+,5.0.4+,6.0.0+,6.2.0rc4+版本,属于影响范围较大的重要发现,官方暂未发布修复版本。其中MONGOSH1357官方已确认,在版本1.6.2进行修复。下面具体描述问题的分...
2023-02-02 14:59:05 817浏览 0点赞 0回复 0收藏
MongoDB文档模型设计的常见误区MongoDB是Schemaless,不需要模型设计(❌)MongoDB设计模式非常简单,就是用一个超级大文档来组织所有数据,一张表即可搞定(❌)MongoDB是NoSQL不支持关联或者事务,因此只能用在较为边缘化的小场景上(❌)以上是三个关于MongoDB文档模型设计的常见误区,那么正确的MongoDB模型设计应该是怎么样的,这种误解又是如何产生的?①关于MongoDB是否需要建模上一篇有提到,传统建模过程通畅...
2023-02-02 14:58:31 779浏览 0点赞 0回复 0收藏
什么是数据模型?按照《数据建模经典教程》作者SteveHoberman的定义,数据模型“是一组由符号、文本组成的集合,用以准确表达信息,达到有效交流、沟通的目的”。我们可以举一个生活中的例子。假设你是一个保险公司的经理人,当你在讨论一个客户的时候,更多考量的是客户的年收入、婚姻状态、家庭成员等信息。但如果背景换成理发店,考虑的内容就会变成:每个月会来几次理发店、偏好什么样的发型等等。二者所关注的客户属性是完...
2023-02-02 14:57:38 705浏览 0点赞 0回复 0收藏
【背景】在使用Oracle、MySQL以及MongoDB数据库时,其中查询时经常遇到null的性能问题,例如Oracle的索引中不记录全是null的记录,MongoDB中默认索引中会记录全是null的文档,MongoDB查询等于null时,表示索引字段对应值是null同时还包括字段不存在的文档。因为MongoDB是动态模式,允许每一行的字段都不一样,例如记录1中包括包括字段A等于1,记录2包括字段A等于null,记录3不包括字段A,那么索引中不仅会包括A等于null的文档,...
2023-02-02 14:57:10 917浏览 0点赞 0回复 0收藏
背景Mongo组件持续运营过程中,发现“断言”异常,在排除人为操作和客户端异常等噪音后,仍然广泛分布在4系版本中。疑似有大鱼,于是集中力量专项治理。经分析,发现MongoCoreBug一项,MongoShellBug一项,已提交issue,并得到官网确认。其中SERVER72532影响了4.4.11+,5.0.4+,6.0.0+,6.2.0rc4+版本,属于影响范围较大的重要发现,官方暂未发布修复版本。其中MONGOSH1357官方已确认,在版本1.6.2进行修复。下面具体描述问题的分...
2023-02-02 14:55:35 706浏览 0点赞 0回复 0收藏
MongoDB文档模型设计的常见误区MongoDB是Schemaless,不需要模型设计(❌)MongoDB设计模式非常简单,就是用一个超级大文档来组织所有数据,一张表即可搞定(❌)MongoDB是NoSQL不支持关联或者事务,因此只能用在较为边缘化的小场景上(❌)以上是三个关于MongoDB文档模型设计的常见误区,那么正确的MongoDB模型设计应该是怎么样的,这种误解又是如何产生的?①关于MongoDB是否需要建模上一篇有提到,传统建模过程通畅...
2023-02-02 14:54:26 911浏览 0点赞 0回复 0收藏
什么是数据模型?按照《数据建模经典教程》作者SteveHoberman的定义,数据模型“是一组由符号、文本组成的集合,用以准确表达信息,达到有效交流、沟通的目的”。我们可以举一个生活中的例子。假设你是一个保险公司的经理人,当你在讨论一个客户的时候,更多考量的是客户的年收入、婚姻状态、家庭成员等信息。但如果背景换成理发店,考虑的内容就会变成:每个月会来几次理发店、偏好什么样的发型等等。二者所关注的客户属性是完...
2023-02-02 14:53:54 630浏览 0点赞 0回复 0收藏
【背景】在使用Oracle、MySQL以及MongoDB数据库时,其中查询时经常遇到null的性能问题,例如Oracle的索引中不记录全是null的记录,MongoDB中默认索引中会记录全是null的文档,MongoDB查询等于null时,表示索引字段对应值是null同时还包括字段不存在的文档。因为MongoDB是动态模式,允许每一行的字段都不一样,例如记录1中包括包括字段A等于1,记录2包括字段A等于null,记录3不包括字段A,那么索引中不仅会包括A等于null的文档,...
2023-02-02 14:52:26 834浏览 0点赞 0回复 0收藏
什么是数据库死锁在操作系统领域当中,死锁指的是两个或者两个以上的进程在运行的过程中,因为争夺共同的访问资源而相互等待阻塞,最终导致进程继无法续执行的一种阻塞现象。那么在数据库领域当中死锁又是怎样的表现形式呢?数据库死锁又会带来怎样的问题呢?在理解数据库死锁之前,我们先来明确下数据库的锁到底是什么?有过Java编程经验的同学都知道,Java中的锁是为了解决共享数据的并发访问安全问题,防止并发访问导致的共...
2022-06-07 16:58:02 3038浏览 1点赞 0回复 0收藏
什么是数据库死锁在操作系统领域当中,死锁指的是两个或者两个以上的进程在运行的过程中,因为争夺共同的访问资源而相互等待阻塞,最终导致进程继无法续执行的一种阻塞现象。那么在数据库领域当中死锁又是怎样的表现形式呢?数据库死锁又会带来怎样的问题呢?在理解数据库死锁之前,我们先来明确下数据库的锁到底是什么?有过Java编程经验的同学都知道,Java中的锁是为了解决共享数据的并发访问安全问题,防止并发访问导致的共...
2022-06-07 16:57:56 2673浏览 0点赞 0回复 0收藏
引言对于一个软件平台来说,软件平台代码的好坏直接影响平台整体的质量与稳定性。同时也会影响着写代码同学的创作激情。想象一下如果你从git上面clone下来的的工程代码乱七八糟,代码晦涩难懂,难以快速入手,有种想推到重写的冲动,那么程序猿在这个工程中写好代码的初始热情都没了。相反,如果clone下的代码结构清晰,代码优雅易懂,那么你在写代码的时候都不好意思写烂代码。这其中的差别相信工作过的同学都深有体会,那么我...
2022-06-07 16:57:49 1532浏览 0点赞 0回复 0收藏
引言最近很多同学问如何进行Java入门学习以及构建自己的技术体系,不少人总感觉Java技术知识浩如烟海,网上资料又多如牛毛,根本不知道应该从哪里入手进行学习,另外觉得自己学习的内容零零碎碎不成体系,感觉十分的迷茫。为了解答大家的疑惑,笔者特意梳理了Java小白到技术专家成长过程中必备的技术体系(这次可是拿出来压箱底的技术总结思维导图)。希望这份技术成长路线总结可以对大家在学习Java的过程中有所帮助,在学习上...
2022-06-07 16:57:24 3060浏览 0点赞 0回复 0收藏
RedisRocketMQElasticsearch思维模型总结以上知识体系思维导图是对Java技术入门的不完全总结和提炼,希望对想入门学习的同学能够有所裨益。另外这边分享给大家一些心得,写代码其实没什么特别的捷径可以走,无非是靠不断的学习、不断的重复练习实战,量变就会引起质变。但是有一点需要提醒大家,写代码其实只是一个基本技能,要想真正在互联网行业有所成就的话仅仅靠写代码是远远不够的。因为写代码的可替代性实在太强了,同样...
2022-06-07 16:57:08 2049浏览 0点赞 0回复 0收藏
引言跳表是一种用于数据查找的数据结构,它虽然不是常见的数据结构,但是在Redis、Hbase等中间件中却被广泛使用,是一款性能比较优秀的底层数据结构,可以支持高速的数据查找、删除以及插入。这种数据结构是由WilliamPugh发明的,最早出现于他在1990年发表的论文《SkipLists:AProbabilisticAlternativetoBalancedTrees》,以下是论文中关于跳表的描述。Skiplistsareadatastructurethatcanbeusedinplaceofbalancedtrees.Skiplist...
2022-06-07 16:56:59 1613浏览 0点赞 0回复 0收藏
引言PostgreSQL是一款功能非常强大的开源关系型数据库,它支持哈希索引、反向索引、部分索引、Expression索引、GiST、GIN等多种索引模式,同时可安装功能丰富的扩展包。相较于Mysql,PostgreSQ支持通过PostGIS扩展支持地理空间数据、支持嵌套循环,哈希连接,排序合并三种表连接方式等一系列的强化功能。本文主要整理总结了30个实用SQL,方便大家可以高效利用PostgreSQL。实用SQL语句一、数据库连接1、获取数据库实例连接数sele...
2022-06-07 16:56:51 1808浏览 0点赞 0回复 0收藏
引言在前面的几篇文章中分别从DDD概念、核心思想以及代码落地等层面阐述了DDD的落地实践的过程,但是很多同学表示对于DDD的某些概念还是觉得不太好理解,影响了对于DDD的学习以及实际应用。因此本文针对大家反馈的问题进行详细的说明,希望可以用大白话的方式把这些看似复杂的概念形象化、简单化。领域、子域、核心域等这么多域到底怎么理解?在DDD的众多概念中,首先需要搞清楚的就是到底什么是领域。因为DDD是领域驱动设计,...
2022-06-07 16:56:46 1871浏览 0点赞 0回复 0收藏
引言今年的三月好像比往年要冷的多,同样在互联网求职市场上以前的金三银色已然变成了铜三铁四,各大公司不是收紧HC就是各种裁员,求职的同学们已经感受到了互联网寒冬的到来,在职的同学们也都人心惶惶。在这样的大环境下,不论是已经被裁员的同学还是在职的同学们,都需要思考如何才能独善其身立于不败之地?凛冬将至,谁能独善其身3月某一天的微博中关于裁员的热搜一个版面就占了三条,一时间互联网行业人人自危。因为如果头...
2022-06-07 16:56:41 1978浏览 0点赞 0回复 0收藏
引言数据库性能优化是每个后端程序猿必备的基础技能之一,而Mysql中的explain堪称Mysql的性能优化分析神器,我们可以通过它来分析SQL语句的对应的执行计划在Mysql底层到底是如何执行的,它对于我们评估SQL的执行效率以及确定Mysql的性能优化方向具有重要的意义。但是很多同学对于如何根据explain对已有SQL进行深度的执行分析还是丈二和尚摸不着头脑,因此本文详细阐述通过explain分析定位数据库性能问题。explain基础对于每个SQ...
2022-06-07 16:56:20 2017浏览 0点赞 0回复 0收藏
(3)eqref在进行数据查询的过程中,如果SQL语句中在表连接情况下可以基于聚簇索引或者非null值的唯一索引记性数据扫描,那么此时type对应的值就会显示为eqref。(4)ref数据查询的时候如果命中的索引是二级索引不是唯一索引,测试查询速度也会很快,但是type是ref。另外如果是多字段的联合索引,那么根据最左匹配原则,从联合索引的最左侧开始连续多个列的字段进行等值比较也是ref的类型。(5)refornull这种连接类型类似于ref...
2022-06-07 16:56:14 3087浏览 0点赞 0回复 0收藏
问题分析在进行数据库查询的时候,我们都知道索引可以加快数据查询的效率。但是在实际的业务场景下,经常会遇到即使在表中增加了索引,但是同样还是会出现数据查询慢的问题。这就需要具体分析数据查询慢的具体原因到底是什么了。首先需要进行确认的就是SQL语句中对应的条件查询中字段有没有建立索引。虽然说表中已经有索引,但是不一定SQL语句中的查询字段有建立索引,所以第一步应该进行SQL中的字段索引确认。如果没有建立对应...
2022-06-07 16:55:56 1664浏览 0点赞 0回复 0收藏