![](https://img-blog.csdnimg.cn/20210219225929466.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库
文章平均质量分 62
数据库知识讲解
奔跑的扫地僧
在代码的世界中,知识需要分享,代码需要open source,世界才能大一统。世界本没有界限,人类的思维限定了国界。
展开
-
DUBBO简介
Dubbo分布式开发流程:Dubbo 分布式系统的开发与SpringCloud的生态圈实现原理类似。大致思路如下:1、首先搭建一个注册中心,推荐使用Zookeeper...原创 2021-07-09 20:57:31 · 163 阅读 · 0 评论 -
SOAP\REST\RPC 分布式概念
实际上SOA只是一种架构设计模式,而SOAP、REST、RPC就是根据这种设计模式构建出来的规范,其中SOAP通俗理解就是http+xml的形式,REST就是http+json的形式,RPC是基于socket的形式。CXF就是典型的SOAP/REST框架,dubbo就是典型的RPC框架,而SpringCloud就是遵守REST规范的生态系统。设计:比如现我有一个数据库,一个JavaWeb(或者PHP等)的网站客户端,一个安卓app客户端,一个IOS客户端。现在我要给用户提供一个注册账号的功能。原创 2021-07-09 20:53:28 · 226 阅读 · 0 评论 -
事务的隔离级别以及分布式事务
事务的隔离级别指的是一个事务对数据的修改与另一个并行的事务的隔离程度,当多个事务同事访问相同数据时,如果没有采取必要的隔离机制,就可能发生以下的问题:1、脏读:一个事务读取到另一个事务未提交的更新数据。2、幻读:指当事务不是独立执行时发生的一种现象,例如:第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部行数据,同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据,就像发生了幻觉一样...原创 2021-07-09 20:49:03 · 467 阅读 · 0 评论 -
Mysql与Oracle比较区别
偶尔有人会问mysql与Oracle的区别,工作中我用oracle比较多,因为有DBA的关系,以前一直没怎么关注其与mysql的区别。这边罗列下:整体上:1、Oracle是大型的数据库而Mysql是中小型数据库;Mysql是开源的,Oracle是收费的,且价格昂贵。目前两者都属于Oracle公司的数据库。2、Oracle支持大并发,大访问量,是OLTP(On-Line Transaction Processing联机事务处理过程)的最好的工具。3、安装占用的内存也是有差别,Mysql安装完成原创 2021-04-16 07:16:16 · 1558 阅读 · 0 评论 -
分布式事务解决方案理论知识
首先我们明白几个常用的短语:TC:transaction coordinator 事务协调者 维护全局和分支事务的状态,驱动全局事务提交或回滚TM:transaction manager 事务管理器 定义全局事务的范围:开始全局事务,提交或回滚全局事务RM:resource manager 资源管理器 管理分支事务处理的资源,与TC交谈以注册和报告事务分支的状态,并驱动分支事务提交或回滚2PC:两个阶段是指:第一阶段:准备阶段(投票阶段)和第二阶段:提交阶段(执行阶段)。二阶段...原创 2021-04-15 08:33:14 · 87 阅读 · 0 评论 -
Zookeeper与Eureka注册中心比较
说到注册中心,我们通常从CAP理论去分析。CAP: C(Consistency)强一致性 A(Availability) 可用性 P(Partition tolerance)分区容错性CAP的3选2:最多只能同时较好的满足两个。 CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和 分区容错性这三个需求。 因此,根据CAP原理将NoSQL数据库分成了满足CA原则...原创 2021-04-08 17:45:23 · 159 阅读 · 0 评论 -
分布式事务解释
分布式事务简述:分布式事务的一致性:为保证数据的高可用,通常,我们会将数据保留多个副本,这些副本会放在不同的物理机器上。为了对用户提供正确的CURD等操作,我们需要保证这些放置在不同物理机器上的副本是一致的。为了解决这种分布式一致性的问题,前人总结了许多典型的协议和算法,其中比较著名的有:二阶提交协议( two phase commitment protocal )、三阶提交协议( three phase commitment protocal ) 和paxos算法分布式事务,指涉及到操作多个原创 2021-02-28 12:14:54 · 133 阅读 · 0 评论 -
数据库知识点之---悲观锁与乐观锁
在实际的开发过程中,我们应该经常用到悲观锁。以前一直没关注理论,只是在实践中,今天搜索了下,其实就是对这两个名词的概念解释。悲观锁(Pessimistic Lock)顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,原创 2021-01-30 16:55:58 · 121 阅读 · 0 评论 -
数据库SQL优化
一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server---创建 备份数据的deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'---开始 备份BACKUP DATABASE pubs TO testBack4、说明:创建新表c...原创 2021-01-24 16:31:07 · 216 阅读 · 0 评论 -
《SQL优化核心思想》---阅读笔记4
第四章 访问路径 access path数据库SQL优化为什么涉及访问路径呢?访问路径指的就是通过哪种扫描的方式获取数据,比如全表扫描、索引扫描、或者直接通过ROWID获取数据,要想成为SQL优化的高手就必须理解各种访问路径。1、全表扫描 table access full全表扫描就是扫描表中所有格式化过的区域,因为区里面的数据块在物理上是连续的,所以全表扫描可以多块读。全表扫描不能跨区读,因为区与区之间的块在物理上不一定是连续的。(PS:oracle数据库中最小的存储单位是块block)当表原创 2020-08-29 13:04:39 · 274 阅读 · 0 评论 -
《SQL优化核心思想》---阅读笔记3
第三章 执行计划备注:基于Oracle12C版本进行学习的SQL调优就是通过各种手段和方法使优化器选择最佳的执行计划使用AUTOTRACE查看执行计划1、使用set autot on 命令在sqlplus命令终端中查看执行计划2、使用explain plan for + sql语句查看执行计划3、查看带有A-TIME的执行计划,在SQL语句中添加:/*+ gather_plan_statistics */4、定制执行计划,例如: explain plan for select /*+ us.原创 2020-07-25 17:40:26 · 249 阅读 · 0 评论 -
《SQL优化核心思想》---阅读笔记2
第二章 统计信息备注:基于Oracle12C版本进行学习的我们分析一个SQL语句的性能问题,需要在知道表的信息,怎么去了解这些信息呢?这里重点讨论表的统计信息表的统计信息主要包含表的总行数num_rows、 表的块数blocks、以及平均长度avg_row_len,我们可以通过数据字典DBA_TABLES获取表的统计信息。1、通常我们查看表T_STATS的统计信息采用如下SQL:select owner,table_name,num_rows,blocks,avg_row_len from db原创 2020-07-18 18:05:26 · 297 阅读 · 0 评论 -
《SQL优化核心思想》---阅读笔记1
SQL优化核心思想一书主要以Oracle为例进行数据库优化的讲解。sql优化一定要看自己使用的数据的版本select * from v$version where rownum = 1; 查看数据库的版本第一章 SQL优化必懂的概念①基数 cardinality :这个基数指每一列的基数,比如:性别列,只有男女之分,那么该列的基数就为2检查主键列与表中所有列是否有重复,可以采用如下的sqlselect count(*) from test;select count(distinct objec.原创 2020-07-12 16:01:47 · 440 阅读 · 0 评论 -
数据库知识点---聚合函数
数据库里使用聚合函数对表中的列进行合计值或者平均值等合计操作通常聚合函数会对NULL以外的对象进行合计。但是只有COUNT函数例外,count(*)函数可以查询出包含NULL在内的全部数据行数,与此不同的是count(列名) 会得到NULL之外的数据行数。常用的就是以下5个函数:COUNT 计算表中数据的行数SUM 计算表中列的数据合计值AVG 计算表中数值列的数据平均原创 2017-05-07 11:46:46 · 768 阅读 · 0 评论 -
数据库知识点---group by 和 having 和 order by
使用GROUP BY 对表进行分组通过使用聚合函数和GROUP BY子句,可以将表进行分割。注意点:①只能写在select子句中②group by 子句中不能使用select 子句中列的别名③group by 子句的聚合结果是无序的④where 子句中不能使用聚合函数使用HAVING 对分组的数据进行条件过滤where条件和having条件,都可以做条件过滤原创 2017-05-08 15:36:51 · 376 阅读 · 0 评论 -
oracle走强制索引的形式
最近半年一直接触Oracle,走强制索引的场景越来越多,很多表加了索引看sql的执行计划(PL/SQL Developer中的快捷键F5)发现还是很慢,就像没有走索引一样。这里查了下强制索引的形式,一下这段进攻参考:首先要看你的Oracle优化器采用的是RBO还是CBO,(1)如果使用的是RBO的话,会按照规则顺序来进行的.(2)如果使用的是CBO的话,那么可以使用HINT方式进行修改。语法:SE...原创 2018-03-04 14:47:03 · 3337 阅读 · 0 评论 -
Oracle 序列创建
背景:最近公司项目需要用到主键唯一性,因此想到了序列号,因此创建序列号来控制唯一。但一般我们创建序列号都是采用可循环的序列,例如:我们循环到了9,9999,9999下一步到10亿,因此通常我们会采用将‘年月日’加在这个序列的前面,从而保证序列的唯一性。以下复制粘贴了一份文章,供大家参考。Oracle对象课程:序列(Sequence)创建、使用、修改、删除,序列(Sequence)是用来生成连续的整...转载 2018-03-26 21:29:17 · 277 阅读 · 0 评论 -
ORCALE常用的连接
跟上学时记不住数学公式一样,这个内连接、左连接、右连接、全连接总是记不住。今天写个demo记下来,sql可以copy直接使用。要用的时候,查下就行。O(∩_∩)O哈哈~-- 这里主要比较 inner join / left join / right join / full join 区别DROP TABLE L PURGE;DROP TABLE R PURGE;-- 左表CREATE TABLE...原创 2018-06-23 11:07:40 · 230 阅读 · 0 评论 -
数据库三大范式一句话表达
数据库的三大范式1、第一范式 在任何关系数据库中,第一范式是对关系模式的基本要求,不满足第一范式的数据库就是不关系型数据库。第一范式指:数据库表的每一列都是不可分割的进本数据,同一列中不能有多个值,即实体中的某个属性不能有多个值或者有重复的属性。另一句话描述:第一范式要求数据库表中的每一列必须是不可拆分的最小单元。2、第二范式第二范式基于第一范式的基础。第二范式要求数据库表中的每个实例或行可以被...原创 2018-06-30 10:11:05 · 646 阅读 · 0 评论 -
数据库知识点---事务
事务:事务是需要在同一个处理单元中执行的一系列更新处理的集合。事务处理的终止指令包括:commit 和 rollbackDBMS的事务具有 ACID 四种属性原子性 atomicity一致性 consistency隔离性 isolation持久性 durability在RDBMS系统中,事务代表了对表中数据进行更新的单位例如:在某公司的会议上原创 2017-05-07 09:54:01 · 367 阅读 · 0 评论