
关系型数据库
关系型数据库总结
黑狗子
多思考,正是那份独到的见解成就当下的自己
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
事务之四种隔离级别
数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工...转载 2019-12-26 22:47:03 · 321 阅读 · 0 评论 -
事务总述
事务引入缘由: 并发情况下对数据库的连续操作进行管理。重点目录:事务特性(ACID): 原子性、一致性、隔离型、持久性 事务的隔离级别 事务的传播机制。 @Transactional标签的使用 @Transactional标签不作用@Transaction不起作用解决方法 事务嵌套,项目示例异常: Transaction silently rolled back because...原创 2019-12-26 17:46:15 · 224 阅读 · 1 评论 -
PostgreSQL删除更新优化
1. 先说删除吧,因为刚搞了。删除缓慢的原因:主要是约束的问题。(数据库在有约束的时候,进行操作,会根据约束对相关表进行验证,可想而知,20W的数据验证要耗费多久的时间)。其次就是sql的编写。(sql如果查询中包含子查询等的可以优化的where会影响匹配的速度<查询的话就不多逼逼了>)。索引的问题(https://blog.youkuaiyun.com/steven088/article/d...原创 2018-08-29 16:28:31 · 2993 阅读 · 0 评论 -
PostgreSQL的timestamp时间戳类型转利用JDBC获取准确获取?
Date date = new Date(rs.getDate("savetime"));利用常规的获取,得到数值只能精确到日期。那这么办呢?Date date = new Date((Date)rs.getObject("savetim"));这样就可以精确到秒。对于源码分析,后期补上,先在这里记录一下。...原创 2018-05-14 17:18:21 · 2296 阅读 · 0 评论 -
Mysql事故:Lock wait timeout exceeded; try restarting transaction
错误描述:[Err] 1205 - Lock wait timeout exceeded; try restarting transaction场景描述:多线程场景下,先删除再更新操作引发的事务锁超时。解决思路:下述是排查所需SQLmysql排查:>查询当前事务select * from information_schema.innodb_trx>查询当前锁SELECT * FROM information_schema.INNODB_LOCKS;>查询当前执行原创 2020-08-20 20:04:22 · 1833 阅读 · 0 评论 -
B-Tree与Hash索引
B-Tree:(数据区+指针区+二分查找)B-tree索引能够加快访问数据的速度,因为存储引擎不再需要经行全表扫描来获取需要的数据,取而代之的是从根节点开始搜索。根节点的槽中存放了指向子节点的指针,存储引擎根据这些指针向下查找。通常比较节点页的值和要查找的值可以找到合适的指针进入下层子节点。B-tree通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同。如上图,是一...转载 2020-04-01 16:20:28 · 460 阅读 · 0 评论 -
Mysql事务:释放当前锁
查看当前运行事务:SELECT a.trx_id, a.trx_state, a.trx_started, a.trx_query, b.ID, b.USER, b.DB, b.COMMAND, b.TIME, b.STATE, b.INFO, c.PROCESSLIST_USER, c.PROCESSLIST_HOST, c.PROCESSLIST_DB, .原创 2020-09-14 09:30:58 · 1066 阅读 · 0 评论 -
Mysql常用命令
#查询字段名和注释 select COLUMN_NAME,COLUMN_COMMENT from information_schema.COLUMNS where table_name = '表名' and table_schema = '库名' order by ordinal_position#查询整个内容select * from information_schema.COLUMNS where table_name = '表名' and table_schema = '库名' order ..原创 2020-12-24 13:46:09 · 385 阅读 · 0 评论 -
MySQL存储过程
理解: 1,对于一种新的语言编程,一般而言需要几步:定义变量,定义函数,调用函数,循环分支,变量赋值,语法规范。 2,对于一些容易出现的错误特殊标识记忆。mysql的存储过程简介: 定义变量:declare eg:declare i int default 0; 变量赋值:set i = i + 1; 循环分支:①while 条件 do 执行语句原创 2017-12-15 15:21:33 · 242 阅读 · 0 评论 -
Pgsql之触发器使用
使用示例: 需求描述: 当读者状态更新的时候,保存状态更新的时间。 需求场景: 系统开发基本完成,处于维护阶段 思路: 由于系统已经完成,代码层面很难兼顾找寻所有状态修改的地方,即便找到,修改起来也是一件繁琐的事。首先,思考AOP编程(很难进行拦截处理),其次数据库DB层面(决定使用触发器处理)。-- hb.rselect * from lt_dzheinfo orde...原创 2020-02-27 13:40:03 · 2468 阅读 · 0 评论