Database
文章平均质量分 87
GarfieldEr007
这个作者很懒,什么都没留下…
展开
-
数据库表结构设计方法及原则(li)
数据库设计的三大范式:为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 在实际开发中最为常见的设计范式有三个:第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式;第二范式在第一范式的基础之上更进转载 2017-10-22 21:15:20 · 3576 阅读 · 0 评论 -
规范化-数据库设计原则
摘要关系型数据库是当前广泛应用的数据库类型,关系数据库设计是对数据进行组织化和结构化的过程,核心问题是关系模型的设计。对于数据库规模较小的情况,我们可以比较轻松的处理数据库中的表结构。然而,随着项目规模的不断增长,相应的数据库也变得更加复杂,关系模型表结构更为庞杂,这时我们往往会发现我们写出来的SQL语句的是很笨拙并且效率低下的。更糟糕的是,由于表结构定义的不合理,会导致在更新数据时造成数转载 2017-10-22 21:20:55 · 1645 阅读 · 0 评论 -
关系型数据库表结构的两个设计技巧
关系型数据库表结构的设计,有下面两个设计技巧:物理主键作为关联的外键关系型数据库,由多个数据表构成。每一个数据表的结构是相同的,不同表之间可能存在关联关系。表之间的关联关系,正是关系型数据库得名的原因。一个表由多个字段构成。其中可能有多个字段适合作为主键。主键字段,就是表中每一行都不会有重复数据的字段。主键,可以分为两种:物理主键和逻辑主键。每一张数据库的表转载 2017-10-22 21:24:35 · 1558 阅读 · 0 评论 -
脏读、幻读和不可重复读 + 事务隔离级别
丢失更新:两个事务同时更新一行数据,最后一个事务的更新会覆盖掉第一个事务的更新,从而导致第一个事务更新的数据丢失,这是由于没有加锁造成的; 1. 脏读 :脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。 e.g. 1.Mary的原工资为1000, 财务人员将Mary的转载 2018-02-06 21:31:09 · 699 阅读 · 0 评论 -
数据库事务的隔离级别
.NET 提供的数据库事务隔离级别 System.Data.IsolationLevel 枚举用于指定连接的事务锁定行为,它包含如下枚举:Chaos无法改写隔离级别更高的事务中的挂起的更改。 ReadCommitted在正在读取数据时保持共享锁,以避免脏读,但是在事务结束之前可以更改数据,从而导致不可重复的读取或幻像数据。转载 2018-02-06 21:34:04 · 700 阅读 · 0 评论 -
谈谈对Canal( 增量数据订阅与消费 )的理解
原文出处: 朱小厮概述canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。起源:早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝转载 2018-02-07 21:02:09 · 862 阅读 · 0 评论 -
使用 Binlog 和 Canal 从 MySQL 抽取数据
数据抽取是 ETL 流程的第一步。我们会将数据从 RDBMS 或日志服务器等外部系统抽取至数据仓库,进行清洗、转换、聚合等操作。在现代网站技术栈中,MySQL 是最常见的数据库管理系统,我们会从多个不同的 MySQL 实例中抽取数据,存入一个中心节点,或直接进入 Hive。市面上已有多种成熟的、基于 SQL 查询的抽取软件,如著名的开源项目 Apache Sqoop,然而这些工具并不支持实时的转载 2018-02-07 21:03:23 · 875 阅读 · 0 评论 -
MySQL的进阶实战篇
关联文章:MySQL的初次见面礼基础实战篇MySQL的进阶实战篇本篇上一篇博文MySQL的初次见面礼基础实战篇的延续,是mysql的进阶内容的记录,本篇主要知识点如下:进阶实战篇进阶实战篇mysql视图机制什么是视图视图创建与使用视图的本质高效索引使用索引的理由索引的创建及其基本类型单列索引复合索引唯一索引主键索引索引的设计存储过程为什么需要存储过程存储过程的创建与使用输入输出参数类型删除存储过程...转载 2018-06-09 13:57:10 · 675 阅读 · 0 评论 -
MySQL的初次见面礼基础实战篇
关联文章:MySQL的初次见面礼基础实战篇MySQL的进阶实战篇本篇将以最简单的方式呈现并演绎mysql数据库的必知必会的知识点,通过本篇博文您将会对mysql从起点到终点的较为全面的认识,关于mysql的知识,将分两篇来记录,即MySQL的基础实战篇和MySQL的进阶实战篇,以下是本篇的主要知识点。基础实战篇环境准备数据库与表的创建以及SQL增删改查数据库和表的创建与删除表的创建与删除外键的约束...转载 2018-06-09 13:56:54 · 674 阅读 · 0 评论 -
MySQL中有关TIMESTAMP和DATETIME的总结
一、MySQL中如何表示当前时间?其实,表达方式还是蛮多的,汇总如下:CURRENT_TIMESTAMPCURRENT_TIMESTAMP()NOW()LOCALTIMELOCALTIME()LOCALTIMESTAMPLOCALTIMESTAMP() 二、关于TIMESTAMP和DATETIME的比较一个完整的日期格式如下:YYYY-MM-DD HH:...转载 2018-07-16 21:39:37 · 1825 阅读 · 0 评论 -
数据库中timestamp,datetime,int时间类型区别
mysql中timestamp,datetime,int类型区别 int1. 占用4个字节2. 建立索引之后,查询速度快3. 条件范围搜索可以使用使用between4. 不能使用mysql提供的时间函数结论:适合需要进行大量时间范围查询的数据表 datetime1. 占用8个字节2. 允许为空值,可以自定义值,系统不会自动修改其值。3. 实际格式储存...转载 2018-07-16 21:40:29 · 3305 阅读 · 0 评论 -
MySql系统变量explicit_defaults_for_timestamp
之前没太注意timestamp这个数据类型,有个坑就是在默认值上,MySql-5.6.6弃用了explicit_defaults_for_timestamp这个系统变量。我的版本却高于5.6.6,所以就掉进去了,囧。如果你的mysql版本高于5.6.6,在创建下表时,报ERROR 1067 (42000): Invalid default value for 'ctime'creat...转载 2018-07-16 21:41:14 · 9700 阅读 · 0 评论 -
MySql函数大全
MySQL数据库提供了很多函数包括:数学函数 字符串函数 //mysql中处理字符串时,默认第一个字符下标为1,即参数position必须大于等于1 日期和时间函数 条件判断函数 系统信息函数 加密函数 格式化函数1. 数学函数函数 说明 abs(x) 返回x的绝对值 ceil(x) 返回大于或等于x的最小整数,select ceil(1.5) --...转载 2018-09-17 20:07:56 · 655 阅读 · 0 评论 -
事务的隔离级别
事务的隔离级别事务的四大特性ACID事务特性 含义原子性(Atomicity) 每个事务都不能再拆分,如果事务中有多条语句,它们应该是一个整体。要么全部成功,要么全部失败。一致性(Consistency) 事务执行前与事务执行后,数据库的状态应该是一致的。如:转账操作,转账前前与转账后两个人的总金额应该是一样的。隔离性(Isolation) 如果同时有多个事务在数...转载 2018-10-14 23:41:13 · 546 阅读 · 0 评论 -
MySQL事务隔离级别详解
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Re...转载 2018-10-14 23:42:10 · 551 阅读 · 0 评论 -
数据库事务的四大特性以及事务的隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一...转载 2018-10-14 23:42:54 · 546 阅读 · 0 评论 -
五分钟搞清楚MySQL事务隔离级别
好久没碰数据库了,只是想起自己当时在搞数据库的时候在事务隔离级别这块老是卡,似懂非懂的。现在想把这块整理出来,尽量用最简洁的语言描述出来,供新人参考。首先创建一个表account。创建表的过程略过(由于InnoDB存储引擎支持事务,所以将表的存储引擎设置为InnoDB)。表的结构如下:表结构然后往表中插入两条数据,插入后结果如下:数据为了说明问题,我们打开两个控制台分别...转载 2018-10-14 23:43:34 · 643 阅读 · 0 评论 -
【Spring学习34】Spring事务(4):事务属性之7种传播行为
事务传播行为什么叫事务传播行为?听起来挺高端的,其实很简单。 即然是传播,那么至少有两个东西,才可以发生传播。单体不存在传播这个行为。事务传播行为(propagation behavior)指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行。 例如:methodA事务方法调用methodB事务方法时,methodB是继续在调用者methodA的事务中运行呢,还是为自己...转载 2018-10-14 23:50:57 · 536 阅读 · 0 评论 -
Spring的7种事务传播行为类型
1、PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。2、PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。‘3、PROPAGATION_MANDATORY:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就抛出异常。...转载 2018-10-14 23:52:03 · 616 阅读 · 0 评论 -
Spring事务传播行为详解
前言Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的工具箱,使用事务传播行可以为我们的开发工作提供许多便利。但是人们对他的误解也颇多,你一定也听过“service方法事务最好不要嵌套”的传言。要想正确的使用工具首先需要了解工具。本文...转载 2018-10-14 23:53:02 · 766 阅读 · 1 评论 -
浅析Spring事务传播行为和隔离级别
7个传播行为。4个隔离级别。 Spring事务的传播行为和隔离级别[transaction behaviorand isolatedlevel]Spring中事务的定义:Propagation(key属性确定代理应该给哪个方法添加事务行为。这种属性最重要的部份是传播行为。)有下面选项可供使用:PROPAGATION_REQUIRED--支持当前事务,假设当前没有事务。就新建一个...转载 2018-10-14 23:53:48 · 741 阅读 · 0 评论 -
Spring事务传递性探讨
本篇主要讨论下面几点:一: Spring 事务的传递性介绍二: 第三方调用含有事务的Service抛异常方法探讨 一: Spring 事务的传递性介绍 事务传播行为,所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。在TransactionDefinition定义中包括了如下几个表示传播行为的常量:...转载 2018-10-14 23:54:48 · 2592 阅读 · 0 评论 -
事务457——事务的七个传播行为
继上一篇文章,我们讲到了事务的传播行为,具体是那七个。我们在罗列一遍:PROPAGATION_REQUIRED如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。PROPAGATION_SUPPORTS如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行。但是对于事务同步的事务管理器,PROPAGATION_SUPPORTS与不使用事务有少许不同。PROPAG...转载 2018-10-14 23:55:39 · 611 阅读 · 0 评论 -
SqlServer基础之(触发器)
概念: 触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIG...转载 2018-12-16 15:05:56 · 821 阅读 · 0 评论 -
MySql 里的IFNULL、NULLIF和ISNULL用法
今天用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下:mysql中isnull,ifnull,nullif的用法如下:isnull(expr) 的用法:如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。 mysql> select isnull(1+1);-> 0mysql> select isn...转载 2019-01-07 21:03:02 · 589 阅读 · 0 评论 -
mysql截取字符串函数left和right和substring和substring_index
截取字符串(1)从左开始截取字符串 left(str,length)str:要截取的字符串length:要截取的长度select left(t.szzbm, 6) from T_AEFIXX t(2)从右开始截取字符串 right(str,length)str:要截取的字符串length:要截取的长度select right(t.szzbm, 6) from T_AEFIXX ...转载 2019-02-19 21:26:35 · 943 阅读 · 0 评论 -
查询数据库中的表结构信息
查询数据库中的表结构信息SELECT COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, IS_NULLABLE 是否为空, COLUMN_DEFAULT 默认值, COLUMN_COMMENT 备注 FROM IN...原创 2019-04-11 23:30:32 · 1129 阅读 · 0 评论 -
mybatis mapper.xml --注释 带参数的坑
注释了直接在下面写了新的sql,注释的时候一般我都习惯性的选中之后Ctrl+/利用编辑器自带的自动注释功能,这个时候编辑器是分两种情况的:情况一是你之前老的sql没有类似<where>这样带特殊尖括号的语句,这个时候如果用Ctrl+/的话编辑器会用'--'也就是sql语句的注释去注释你之前的老sql,注释完之后编辑器并不会报错如果比较幸运你之前的语句里没有参数的话执行也是没有问题的,但...转载 2019-05-16 12:56:18 · 2192 阅读 · 0 评论 -
MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比
1、MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法。不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合。2、InnoDB:支持事务安全的引擎,支持外键、行锁、事务是他的最大特点。如果有大量的update和i...转载 2019-07-12 22:56:17 · 650 阅读 · 0 评论