摘要: 一、死锁的概念 死锁是指两个或两个以上的事务在执行过程中,因争夺锁资源而造成的一种互相等待的现象。若无外力作用,事务都将无法推进下去。 解决死锁问题最简单的方式是不要等待,将任何的等待都转化为回滚,并且事务重新开始。然而在线上环境中,这可能导致并发性能的下降,甚至任何一个事务都不能进行。而这锁带来的 阅读全文
posted @ 2019-07-07 10:26 hyunbar 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 一、Record Lock:单个记录上的锁 Record Lock总是会锁住索引记录,如果InnoDB存储引擎表在建立的时候没有设置任何一个索引,那么这时InnoDB存储引擎会使用隐式的主键来进行锁定。 二、Gap Lock:间隙锁 设计目的:是为了解决Phantom Problem(幻象/幻读), 阅读全文
posted @ 2019-07-04 16:14 hyunbar 阅读(1352) 评论(1) 推荐(0) 编辑
摘要: 1 Ctrl+Shift + Enter,语句完成 2 “!”,否定完成,输入表达式时按 “!”键 3 Ctrl+E,最近的文件 4 Ctrl+Shift+E,最近更改的文件 5 Shift+Click,可以关闭文件 6 Ctrl+[ OR ],可以跑到大括号的开头与结尾 7 Ctrl+F12,可以显示当前文件的结构 8 Ctrl+F7,可以查询当前元素在当前文件... 阅读全文
posted @ 2019-07-04 15:10 hyunbar 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 一、简介 通过锁机制可以实现事务的隔离性要求,使得事务可以并发地工作。锁提高了并发,但是却带来了问题。不过好在因为事务隔离性的要求,锁只会带来三种问题,如果可以防止这三种情况的发生,那将不会产生并发异常。 二、脏读 页和脏数据的区别:脏页是指在缓冲池中已经被修改的页,但是还没有刷新到磁盘中,即数据库 阅读全文
posted @ 2019-06-30 15:57 hyunbar 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 一、什么是锁 锁是数据库系统区别于文件系统的一个关键特性。锁机制用于管理对共享资源的并发访问。 数据库系统使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性。 InnoDB存储引擎锁的实现和Oracle数据库很相似,提供一致性的非锁定读、行级锁支持。行级锁没有相关额外的开销,并可以同事 阅读全文
posted @ 2019-06-25 23:48 hyunbar 阅读(635) 评论(0) 推荐(0) 编辑
摘要: 一、ISO和ANIS SQL标准制定了四种事务隔离级别的标准 很少有数据库厂商遵循这些标准,如Oracle不支持READ UNCOMMITTED和REPAEATABLE READ的事务隔离级别。 SQL标准定义的四个隔离级别: - READ UNCOMMITTED - READ COMMITTED 阅读全文
posted @ 2019-06-23 16:02 hyunbar 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 一、扁平事务(Flat Transaction) 扁平事务是事务类型中最简单的一种,但在实际生产环境中,这可能是使用最为频繁的事务。 在扁平事务中,所有操作都是处于同一层次,其由BEGIN WORK开始,由COMMIT WORK或ROLLBACK WORK结束,期间的操作是原子的,要么都执行,要么都 阅读全文
posted @ 2019-06-23 15:40 hyunbar 阅读(2142) 评论(0) 推荐(0) 编辑
摘要: 一、RDBMS VS NOSQL RDBMS - 高度组织化结构化数据 - 结构化查询语句(SQL) - 数据和关系都存储哎单独的表中 - 数据操纵语言,数据定义语言 - 严格的一致性 - 事务 NOSQL - 代表著不仅仅是SQL - 没有声明性查询语言 - 没有预定义的模式 - K-V存储,列存 阅读全文
posted @ 2019-06-23 13:54 hyunbar 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 一、认识事务 事务可由一条非常 简单的SQL语句组成,也可以由一组复杂的SQL语句组成。 事务是访问并更新数据库中各种数据项的一个程序执行单元。 在事务中的操作,要么都做修改,要么都不做,这就是事务的目的,也是事务模型区别与文件系统的重要特征之一。 理论上说,事务有着极其严格的定义,他必须满足事务的 阅读全文
posted @ 2019-06-22 22:01 hyunbar 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 一、创建一个用来测试的数据库和表 方式1:一条一条插入,性能最差 运行结果: 100w条记录,插完要俩小时了 方式2:使用sqlBulk 语法如下: 相关参数说明: 代码: 方式3:insert into 四、拼接sql 阅读全文
posted @ 2019-04-11 17:35 hyunbar 阅读(2495) 评论(0) 推荐(0) 编辑