这个用户很懒,还没有个人简介
私信
主帖 28
回帖
视频
提问
回答
资源
专栏
1介绍在分布式系统中,由于涉及到多个不同业务module的交互,以及高并发的场景。我们需要系统能够生成一个跨业务module的全网唯一序列号,来保证我们业务操作的独立性和唯一性。在常见的业务场景中,比如全局订单Id,唯一标识的支付编号等,都需要这个来保证。那生成ID都有哪些解决方案呢?特别是在复杂的分布式系统业务场景中,我们应该采用哪种解决方案来实现这个唯一序列呢?一般来说,这个唯一序号有如下几种特征:全局唯一...
2022-08-01 19:26:44 224浏览 0点赞 0回复 0收藏
概述在实际的业务场景应用中,我们经常要根据业务条件获取并筛选出我们的目标数据。这个过程我们称之为数据查询的过滤。而过滤过程使用的各种条件(比如日期时间、用户、状态)是我们获取精准数据的必要步骤,这样才能得到我们期望的结果。所以本章我们来学习MySQL中查询过滤条件的各种用法。关系运算关系运算就是where语句后跟上一个或者n个条件,满足where后面条件的数据会被返回,反之不满足的就会被过滤掉。operators指的是...
2022-08-01 19:23:01 201浏览 0点赞 0回复 0收藏
1传统单体系统介绍在很多项目的业务初期阶段,高速迭代上线是首要考虑的事情,对后期的容量预估、可扩展性和系统健壮性、高可用一般没有那么重视。但随着业务的发展,用户量、请求量的暴增,发现原来的单体系统已经远远不满足需求了,特别是随着互联网整体的高速发展,对系统的要求越来越高。但是物理服务器的CPU、内存、存储器、连接数等资源有限,单体系统能够承受的的QPS也是有限的,某个时段大量连接同时执行操作,会导致we...
2022-08-01 19:20:05 169浏览 0点赞 0回复 0收藏
常用命令打开CMD命令窗口(记住使用管理员身份运行),我们就可以在命令窗口中做一些MySQL的命令操作了:服务启动和关闭这个我们上一个章节使用过了:netstartmysql,这是服务命令,不是语句命令,后面不需要加引号netstopmysql代表停止MySQL服务netstartmysq代表启动MySQL服务MySQL登录命令这个我们前面一章我们也了解过,使用过了:mysqlh主机名P端口u用户名p,前面一章有对h,u,p作过解释,这边P是指Port端口。mysqlhlocalh...
2022-08-01 19:17:40 234浏览 0点赞 0回复 1收藏
背景单位每年都会举行运动会,有一个2000m长跑的项目,大约每年报名人员为男选手40人,女选手20人,只有一条橡胶跑道。一次比赛10人齐跑,所以至少需要6场比赛。2000米的完成时间要求是20分钟,超过20分钟不计数,所以比赛耗时我们计算为20分钟,加上比赛前的动员组织,比赛后的清场,我们假定每场比赛耗时30分钟。现在我们预估下耗时:1、60人10人每场6场,至少需要举行6场2、总耗时6场0.5h3h所以每年把这个比赛安排在下午3点...
2022-08-01 19:16:06 171浏览 0点赞 0回复 0收藏
前言SQL的语言分类主要包含如下几种:这小节主要了解下数据定义语言DDL(DataDefineLanguage)。我们用它对数据库、表进行一些管理操作(创建、删除、修改等),比如:建库、删库、建表、修改表、删除表、对字段的增删改等,库表结构的管理。接下来我们逐一来说明(下文[]中的内容属于可选项)。数据库管理创建数据库1createdatabase[ifnotexists]dbname;删除数据库dropdatabases[ifexists]dbname;完整的写法如下:dropdatabases[...
2022-08-01 19:15:42 400浏览 0点赞 0回复 0收藏
概述MySQL支持很多数据类型,以便我们能在复杂的业务场景中支持各种各样的数据格式,存储适当的数据内容。我们在设计数据库时,正确的使用数据库类型对整个数据库的整洁和高效,会有很大的帮助。目前常用的数据类型大致上可以分为4大类:整数类型、浮点数类型、字符串(字符)类型、日期时间类型。详细如下数值类型MySQL支持所有标准SQL数值数据类型,包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),还有近似数值数...
2022-08-01 19:15:11 172浏览 0点赞 0回复 0收藏
说明DML(DataManipulationLanguage)数据操作语言,是指对数据库进行增删改的操作指令,主要有INSERT、UPDATE、DELETE三种,代表插入、更新与删除,这是学习MySQL必要掌握的基本知识。与之前的章节一致,下方语法中[]中内容可以省略。INSERT操作逐行插入语法格式如下:insertintotname[(columnname1,columnname2,...)]values(val1,val2);或者insertintotnamesetcolumnname1val1,columnname2val2;1、字段名称和值需要保证数量一直...
2022-08-01 19:13:43 170浏览 0点赞 0回复 0收藏
1为什么要分库分表物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时段大量连接同时执行操作,会导致数据库在处理上遇到性能瓶颈。为了解决这个问题,行业先驱们充分发扬了分而治之的思想,对大表进行分割,然后实施更好的控制和管理,同时使用多台机器的CPU、内存、存储,提供更好的性能。而分治有两种实现方式:垂直拆分和水平拆分。2垂直拆分(ScaleUp纵向扩展)垂直拆分分为垂直分库和垂直分表,主要按功能模块拆...
2022-08-01 19:12:59 176浏览 0点赞 0回复 0收藏
概述提到查询,就回到我们第四篇的SQL语言分类了,DQL(DataQueryLanguage),也就是数据查询语言,实际就是从数据库中获取数据的一种命令方式。我们给数据库发送一个查询语句的命令,数据库按需返回相应的数据。查询基本语法selectcolumnname1,columnname2,...fromtname;SQL中不区分大小写,select语句中不区分大小写,SELECT和select、FROM和from效果一样。查询的结果放在一个表格中,表格的第1行称为列头,第2行开始是数据,类...
2022-08-01 19:07:33 191浏览 0点赞 0回复 0收藏
1回顾上一节我们详细讲解了如何对数据库进行分区操作,包括了垂直拆分(ScaleUp纵向扩展)和水平拆分(ScaleOut横向扩展),同时简要整理了水平分区的几种策略,现在来回顾一下。2水平分区的5种策略2.1Hash(哈希)这种策略是通过对表的一个或多个列的HashKey进行计算,最后通过这个Hash码不同数值对应的数据区域进行分区。例如我们可以建立一个对表的日期的年份进行分区的策略,这样每个年份都会被聚集在一个区间。PARTITIONBY...
2022-08-01 19:05:30 132浏览 0点赞 0回复 0收藏
1真实案例云办公系统用户实时信息查询功能优化发布之后,系统发生宕机事件(系统挂起,页面无法加载)。1.1背景我们IM原有的一个功能,当鼠标移动到用户头像的时候,会显示出用户的基本信息。信息比较简单,只包含简单的用户名、昵称、性别、邮箱、电话等基本数据,这是一个典型的数据查询,大概过程如下左侧,访问用户基本信息的时候会先去Redis中查一下,如果不存在,就把大约2W左右的用户数据一次性取出来,保存在Redis中,...
2022-08-01 18:55:01 216浏览 0点赞 0回复 0收藏
概述上一章查询的过滤条件,我们了解了MySQL可以通过like%通配符来进行模糊匹配。同样的,它也支持其他正则表达式的匹配,我们在MySQL中使用REGEXP操作符来进行正则表达式匹配。用法和like相似,但又强大很多,能够实现一些很特殊的、复杂的规则匹配。正则表达式使用REGEXP命令进行匹配时,如果符合返回1,不符合返回0。如果默认不加任何匹配规则REGEXP相当于like'%%'。在前面加上NOT(NOTREGEXP)相当于NOTLIKE。匹配模式分析...
2022-08-01 18:52:38 170浏览 0点赞 0回复 0收藏
概述数据库中的数据直接呈现出来一般不是我们想要的,所以我们上两节演示了如何对数据进行过滤的方法。除了对数据进行过滤,我们可能还需要对数据进行排序,比如想从列表中了解消费最高的项,就可能需要对金额字段做降序排序,想看年龄从小到大的分布情况,就可能需要对user表的age字段进行升序排序。也可能需要对数据进行限制,比如我们需要对付款的110,1120,2130名的用户分别赠予不同的礼品,这时候对数据的限制就很有用了...
2022-08-01 18:47:06 234浏览 0点赞 0回复 0收藏
1关于分布式系统1.1介绍我们常见的单体结构的集中式系统,一般整个项目就是一个独立的应用,所有的模块都聚合在一起。明显的弊端就是不易扩展、发布冗重、服务治理不好做。所以我们把整个系统拆分成若干个具备独立运行能力的计算服务的集合,而从用户的角度看,是一个完整的系统,但实际上,它是一个分布式服务的集合。分布式系统主要从以下几个方面进行裂变:应用可以从业务领域拆分成多个module,每个module还可以再按项目结...
2022-08-01 18:45:19 246浏览 0点赞 0回复 0收藏
概述相信我们经常会遇到这样的场景:想要了解双十一天猫购买化妆品的人员中平均消费额度是多少(这可能有利于对商品价格区间的定位);或者不同年龄段的化妆品消费占比是多少(这可能有助于对商品备货量的预估)。这个时候就要用到分组查询,分组查询的目的是为了把数据分成多个逻辑组(购买化妆品的人员是一个组,不同年龄段购买化妆品的人员也是组),并对每个组进行聚合计算的过程:。分组查询的语法格式如下:selectcname,gr...
2022-08-01 18:43:42 187浏览 0点赞 0回复 0收藏
背景团队目前在做一个用户数据看板(下面简称看板),基本覆盖用户的所有行为数据,并生成分析数据,用户行为数据来源于多个数据源(餐饮、生活日用、充值消费、交通出行、通讯物流、交通出行、医疗保健、住房物业、运动健康...),基于对大量数据的任意请求、排序和统计,没有办法对原生表(原生多表查询相对复杂)直接进行数据采用,所以我们在当日的凌晨获取前一天数据,并将数据做成Json对象保存在Mongo数据库中。所以看板...
2022-07-29 17:28:31 358浏览 0点赞 0回复 0收藏
1微服务优势与挑战1.1微服务的优势1.1.1单一职责微服务架构中的每个节点高度服务化,都是具有业务逻辑的,符合高内聚、低耦合原则以及单一职责原则的单元,包括数据库和数据模型;不同的服务通过“管道”的方式灵活组合,从而构建出庞大的系统。1.1.2轻量级通信通过RESTAPI模式或者RPC框架,事件流和消息代理的组合相互通信,实现服务间互相协作的轻量级通信机制。1.1.3独立性在微服务架构中,每个服务都是独立的业务单元,与其...
2022-07-29 17:26:05 217浏览 0点赞 0回复 0收藏
概述子查询是SQL查询中的重要一块,是我们基于多表之间进行数据聚合和判断的一种手段,使得我们的处理复杂数据更加的便捷,这一节我们主要来了解一下子查询。先做一下数据准备,这边建立三张表:班级、学生、毕业成绩表,用于后面的操作:dropdatabaseifexistsHelenlynClass;createdatabaseHelenlynClass;班级表DROPTABLEIFEXISTSclasses;CREATETABLEclasses(classidintprimarykeyAUTOINCREMENTcomment'班级id',classnamevarcha...
2022-07-27 15:52:28 224浏览 0点赞 0回复 0收藏
1背景我们的云办公系统有一个会议预定模块,每个月最后一个工作日的下午三点,会启动对下个月会议室的可用预定。公司的会议室大约200个,但是需求量远不止于此,所以会形成会议室抢订的场面(抢订大军为行政助理、人事助理、开发经理、产品运营等对会议室有刚性需求的人)。程序团队,经常会接到投诉,A同学和B同学抢了同一个会议室,前端页面显示为两个占位图片,从数据库看,是插入了两条同一个会议位置的数据,这两条数据的...
2022-07-27 15:51:33 224浏览 0点赞 0回复 0收藏