
数据库
javaee_sunny
知行合一.
展开
-
ORACLE IN 与NOT IN 的性能区别
业务问题大概可以这样描述,一个父表,一个子表,查询的结果是找到子表中没有使用父表id的记录,这种情况估计很多系统都会牵涉得到。让我们来举一个例子: 表一: 父表 parent 表二: 子表 childen 父表存储父亲,子表存储孩子,然后通过pid和父表关联,查询需要的结果是找到尚未有孩子的父亲。 我们来看一下查询语句的写法: se转载 2017-08-22 11:27:31 · 950 阅读 · 0 评论 -
ORACLE in与exists语句的区别
结论:1. select * from A where id in(select id from B);使用in语句,上述执行次数为A.length * B.length次;2. select a.* from A a where exists(select 1 from B b where a.id=b.id);使用了exists语句,exists()会执行A.length次转载 2017-08-22 11:41:27 · 278 阅读 · 0 评论 -
ORACLE数据库事务隔离级别
事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度。两个并发事务同时访问数据库表相同的行时,可能存在以下三个问题:1、幻想读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新记录,恰好满足T1的where条件。然后T1使用相同的条件再次查询,结果集中可以看到T2插入的记录,这条新纪录就是幻想。2、不可重复读取:事务T1读取一行记录,转载 2017-08-23 16:38:58 · 583 阅读 · 0 评论 -
关于Oracle存储过程中是否需要写commit的问题
是否需要在存储过程中写commit主要要依据需求:(1) 如果是不需要在存储过程中进行提交,而是由调用程序负责提交或者回滚,那么不需要在存储过程中commit或者rollback.毕竟spring框架已经可以帮助我们自动实现事务的控制;(2) 如果不想由调用程序负责提交或者回滚,那么就应该在存储过程中进行commit或rollback; 另外,如果是纯后台数据库开发,一定要写.只是写的时机同样原创 2017-08-23 17:13:07 · 29184 阅读 · 0 评论 -
存储过程中处理用逗号拼接成的参数
--in_pid 为入参,如: 12,23,24SELECT REGEXP_SUBSTR(in_pid, '[^,]+', 1, rownum) FROM DUAL CONNECT BY rownum <= (length(in_原创 2017-08-24 14:22:16 · 757 阅读 · 0 评论 -
canal应用-1个server+2个instance+2个client+2个mysql
一 canal应用架构设计组件说明:1 . linux内核版本(CentOS Linux 7):(命令:uname -a)Linux slave1 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux2.mysql版本:(SQL命令:select version(...原创 2019-06-09 05:50:01 · 6681 阅读 · 1 评论 -
canal之高可用架构设计与应用
一 高可用架构设计配置说明:zookeeper x 3 + canal x 2 + mysql x 2组件说明:1.linux内核版本(CentOS Linux 7):(命令:uname -a)Linux slave1 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/...原创 2019-06-09 05:55:02 · 4258 阅读 · 0 评论