
数据库
第三眼的思绪
这个作者很懒,什么都没留下…
展开
-
Oracle常用数据类型详解
1、字符类型 CHAR 一个定长字符串,当位数不足自动用空格填充来达到其最大长度。如非NULL的CHAR(12)总是包含12字节信息,CHAR字段最多可以存储2,000字节的信息。 VARCHAR2 这是一个变长字符串,与CHAR 类型不同,它不会用空格填充至最大长度,VARCHAR2(12)可能包含0~12字节的信息,VARCHAR2最多可以存储4...原创 2018-09-13 09:41:15 · 760 阅读 · 0 评论 -
数据库迁移方案
方案一 MQ迁移缓冲+单双写不停服,增加缓冲层(MQ)。数据迁移过程中增量数据写入缓冲MQ,在数据迁移完成、缓冲层数据消费完成后,打开开关开始双写数据库,业务验证正常后关闭旧库读写。推荐指数 ☆☆☆☆☆优点:对用户无感,有回滚方案缺点:操作成本高、方案操作节点、引入组件较多、研发和测试流程需要严格把控方案二 主动迁移+被动迁移+双写当打开开关进行迁移过程中发生数据访问时,强制将客户端要访问的数据立刻迁移(被动迁移),然后再双写处理该数据请求;同时通过外挂程序或指令将源库表数据复制到迁移目标数原创 2021-07-20 17:22:07 · 2273 阅读 · 0 评论 -
MySQL InnoDB 锁表与锁行
MySQL InnoDB 锁表与锁行由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住)。举个例子: 假设有个表单products ,里面有id跟name二个栏位,id是主键。例1: (明确指定主键,并且有此笔资料,row lo原创 2017-04-28 20:27:17 · 1171 阅读 · 0 评论 -
sql表连接和合并详解
在sql表连接中,很容易混淆表连接的概念,这里将对表连接进行直观而详细的描述。如上图所示,其中红色区域表示这部分数据一定符合连表查询条件的数据,即一定会出现在查询处理的临时表中;黄色表示从表,其中符合条件的行列将查询出来,不符合的行列用null填充;白色表示这个区域的数据不符合连表查询的条件。左连接(left join或left outer join) 在某些数据库中,LEFT原创 2016-12-06 14:55:17 · 3535 阅读 · 0 评论 -
12款免费与开源的NoSQL数据库介绍
现在,NoSQL数据库变得越来越流行,我在这里总结出了一些非常棒的、免费且开源的NoSQL数据库。在这些数据库中,MongoDB独占鳌头,拥有相当大的使用量。这些免费且开源的NoSQL数据库具有很好的可伸缩性与灵活性,非常适合于大数据存储与处理。相较于传统的关系型数据库,这些NoSQL数据库在性能上具有很大的优势。然而,这些NoSQL数据库未必最适合你。大多数常见的应用仍然可以使用传统的关系型数据转载 2016-09-22 12:06:45 · 428 阅读 · 0 评论 -
oracle for update和for update nowait的区别
1、for update 和 for update nowait 的区别 首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以select结果为当前时刻表中记录的状态。 如果加原创 2016-09-22 11:59:17 · 412 阅读 · 0 评论 -
乐观锁和悲观锁详解
一、为什么需要锁(并发控制)? 1、在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突,这就是著名的并发性问题,为了解决并发性冲突问题,通常就会用到锁。典型的冲突有以下两种: a)、丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。 b)、原创 2016-09-02 14:15:48 · 1465 阅读 · 1 评论 -
Oracle创建表空间、创建用户以及授权、查看权限
一、创建创建临时表空间CREATE TEMPORARY TABLESPACE test_tempTEMPFILE 'C:\oracle\product\10.1.0\oradata\orcl\test_temp01.dbf'SIZE 32MAUTOEXTEND ONNEXT 32M MAXSIZE 2048MEXTENT MANAGEMENT LOCAL;创建用户表空间CREAT原创 2016-06-06 09:30:51 · 539 阅读 · 0 评论 -
oracle merge into 用法详解
MERGE INTO 是Oracle 9i以后才出现的新的功能。那这个功能是什么呢? 简单来说,就是:“有则更新,无则插入”,类似MySQL中的replace。在merge into操作一个对象'A'的时候,要有另外一个结果集'B'作为源数据,‘merge into’通过on将B中的数据与A中的数据按照一定条件'C'进行对比匹配,如果 A中数据满足C条件(即能和B按条件C匹配上),则进行原创 2016-01-07 17:02:06 · 1220 阅读 · 0 评论 -
用户、角色和权限关系
一.引言 因为做过的一些系统的权限管理的功能虽然在逐步完善,但总有些不尽人意的地方,总想抽个时间来更好的思考一下权限系统的设计。 权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设计,以满足不同系统用户的需求,将会浪费我们不少宝贵时间,所以花时间来设计一个相对通用的权限系统是很有意义的。二.设计目标 设计一转载 2015-12-21 21:13:24 · 48540 阅读 · 6 评论 -
Oracle存储过程详解
1、基本结构CREATE [OR REPLACE ] PROCEDURE 存储过程名字 ( argument1 [ mode1 ] datatype1, argument2 [ mode2 ] datatype2, …) IS 变量1 INTEGER := 0 ;变量2 DATE ;BEGIN-- 存储过程操作执行体END 存储过程名字2、SELECT INTO STA原创 2015-12-02 16:12:45 · 773 阅读 · 0 评论 -
oracle中的decode的使用
格式:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 即decode(字段或字段的运算,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)含义理解如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN...原创 2018-09-10 16:36:54 · 1110 阅读 · 0 评论 -
Oracle级联递归查询
基础:创建数据表:-- 区域表CREATE TABLE sys_district{ id NUMBER(10) NOT NULL primary key, parentid NUMBER(10), name VARCHAR2(255 BYTE) NOT NULL}向区域表中插入数据:INSERT INTO sys_district(ID,NAME) VALUES(1,'中国');I原创 2015-10-29 12:56:52 · 4569 阅读 · 0 评论 -
mysql查询使用concat连接字符串时中文乱码处理
mysql concat乱码问题解决格式:concat(str1,str2) 或concat(str1,str2,str3)等等。问题描述:当concat结果集出现乱码时,几乎都是由于连接的字段类型不同导致,如concat中的字段参数一部分是varchar类型,一部分是int类型或doule等其他类型,就会出现乱码。 解决方法:利用mysql的字符串转换函数CONVERT将参数格式化为...原创 2018-09-10 19:04:20 · 2028 阅读 · 0 评论