随笔分类 -  DB

1
摘要:比如用户和角色的中间表: 想查找同时拥有角色id为1和2的用户id,sql如下: 阅读全文
posted @ 2018-03-09 13:47 raindream 阅读(413) 评论(0) 推荐(0)
摘要:1NF: 字段是最小的的单元不可再分 2NF:满足1NF,表中的字段必须完全依赖于全部主键而非部分主键3NF:满足2NF,非主键外的所有字段必须互不依赖 比较好的解释请见:https://www.zhihu.com/question/24696366 阅读全文
posted @ 2017-04-08 00:50 raindream 阅读(150) 评论(0) 推荐(0)
摘要:转自:数据库SQL优化大总结之 百万级数据库优化方案 牢记数据查询只能使用一个索引,每个字段建立独立索引的情况下,也只能有一条索引被使用! EXISTS、IN与JOIN性能分析 网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正 阅读全文
posted @ 2017-04-07 23:02 raindream 阅读(217) 评论(0) 推荐(0)
摘要:QPS:每秒查询数 QRS:查询响应时间 TPS:每秒事务数 TRS:事务响应时间 QPS(TPS)= 并发数/平均响应时间 或者 并发数 = QPS*平均响应时间 一个典型的上班签到系统,早上8点上班,7点半到8点的30分钟的时间里用户会登录签到系统进行签到。公司员工为1000人,平均每个员上登录 阅读全文
posted @ 2017-03-08 00:25 raindream 阅读(578) 评论(0) 推荐(0)
摘要:数据库Sharding的基本思想和切分策略 关于垂直切分Vertical Sharding的粒度 数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示 数据库分库分表(sharding)系列(二) 全局主键生成策略 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开 阅读全文
posted @ 2017-03-07 01:03 raindream 阅读(155) 评论(0) 推荐(0)
摘要:1: PROPAGATION_REQUIRED 加入当前正要执行的事务不在另外一个事务里,那么就起一个新的事务。比如说,ServiceB.methodB的事务级别定义为PROPAGATION_REQUIRED, 那么由于执行ServiceA.methodA的时候,ServiceA.methodA已经 阅读全文
posted @ 2017-03-06 23:59 raindream 阅读(139) 评论(0) 推荐(0)
摘要:根据EntityManager对象的管理方式,可以有以下两种类型: — 容器托管的(container-managed)EntityManager对象 容器托管的EntityManager对象最简单,程序员不需要考虑EntityManager连接的释放,以及事务等复杂的问题,所有这些都交给容器去管理 阅读全文
posted @ 2017-01-19 00:17 raindream 阅读(1058) 评论(0) 推荐(0)
摘要:一个service在事务中处理异常的例子: 其中saveFail()为: 那么执行完test()方法后,t1、t2、t3、t5都会保存到数据库中,t4不会保存。 阅读全文
posted @ 2016-11-16 22:56 raindream 阅读(423) 评论(0) 推荐(0)
摘要:ALTER TABLE TableA ADD CONSTRAINT CK_BothDepartsNotNull CHECK (departA IS NOT NULL OR departB IS NOT NULL) 阅读全文
posted @ 2016-09-18 23:33 raindream 阅读(160) 评论(0) 推荐(0)
摘要:as后的Name会显示为name,若想不忽略大小写,请把Name加上双引号 阅读全文
posted @ 2016-09-18 23:32 raindream 阅读(2613) 评论(0) 推荐(0)
摘要:查看Schema: 查看使用的配置文件: 阅读全文
posted @ 2016-09-18 23:32 raindream 阅读(162) 评论(0) 推荐(0)
摘要:UNIQUE约束要求,对于列或列组合而言,表中每行的值必须是不同的。UNIQUE约束的怪异之处在于,可以在键列输入NULL值。在键列中,可能有任意数量的包含NULL值得行。UNIQUE约束通过索引来实施。在定义UNIQUE约束时,Oracle将查看键列上的索引,如果不存在,就创建一个。索引(称为B* 阅读全文
posted @ 2016-09-18 23:31 raindream 阅读(1280) 评论(0) 推荐(0)
摘要:What's wrong with nullable columns in composite primary keys? 阅读全文
posted @ 2016-09-18 23:31 raindream 阅读(195) 评论(0) 推荐(0)
摘要:不可重复读(Nonrepeatable Read) 一个事务的两次读取中,读取相同的资源得到不同的值。当事务T2在事务T1的两次读取之间更新数据,则会发生此种错误(重点在修改) 幻读(Phantom): 此概念相对难理解一些。 事务T1对一定范围内执行操作,T2对相同的范围内执行不兼容的操作,这时会 阅读全文
posted @ 2016-08-26 23:19 raindream 阅读(2044) 评论(0) 推荐(0)
摘要:本篇文章可能有错,尚未细细研究 运行\d出错: No relations found. \d只显示可见的表,也就是该数据库的schema在search_path中。 如果没有,设置一下: 其中tran是要查询的schema。 如果\d仍然出错,查看一下访问权限: 如果输出: tran行的Access 阅读全文
posted @ 2016-08-22 22:50 raindream 阅读(3537) 评论(0) 推荐(0)
摘要:转自:JDBC和JTA事务的区别 一、事务概述事务表示一个由一系列的数据库操作组成的不可分割的逻辑单位,其中的操作要么全做要么全都不做。与事务相关的操作主要有:BEGIN TRANSACTION; 开始一个事务,方法是:begin()COMMIT; 提交一个事务,方法是:commit()ROLLBA 阅读全文
posted @ 2016-07-27 16:31 raindream 阅读(29852) 评论(0) 推荐(8)
摘要:摘自:SQL Server 查询性能优化——覆盖索引(一) 覆盖索引又可以称为索引覆盖。 解释一: 就是select的数据列只用从索引中就能够取得,不必从数据表中读取,换句话说查询列要被所使用的索引覆盖。 解释二: 索引是高效找到行的一个方法,当能通过检索索引就可以读取想要的数据,那就不需要再到数据 阅读全文
posted @ 2016-07-26 12:04 raindream 阅读(4123) 评论(0) 推荐(1)
摘要:转自:聚集索引和非聚集索引(整理) 官方说法: 聚集索引 一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。 聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引 阅读全文
posted @ 2016-07-25 17:36 raindream 阅读(1226) 评论(0) 推荐(0)
摘要:转自:union和union all的区别 Union因为要进行重复值扫描,所以效率低。如果合并没有刻意要删除重复行,那么就使用Union All 两个要联合的SQL语句 字段个数必须一样,而且字段类型要“相容”(一致)。 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到 阅读全文
posted @ 2016-07-25 14:30 raindream 阅读(216) 评论(0) 推荐(0)
摘要:转自:SQL truncate 、delete与drop区别 相同点: 1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点: 1. truncate 和 delete 只删 阅读全文
posted @ 2016-07-25 14:25 raindream 阅读(1517) 评论(0) 推荐(0)

1