blog.hongxi.org

Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ + Elasticsearch)

数据库建立索引的原则

使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的 值进行排序的一种结构,例如 employee 表的姓(lname)列。如果要按姓查找 特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。         索引是一个单独的、物理的数据库结构,它是某个表中一列或...

2018-03-23 14:37:34

阅读数:201

评论数:0

B树、B-树、B+树、B*树

B树       即二叉搜索树:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;       如...

2018-03-09 17:48:58

阅读数:36

评论数:0

生产环境连接池和线程池配置参考

<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource"&g...

2018-03-09 17:48:37

阅读数:155

评论数:0

MySQL事务内幕与ACID

            MySQL的事务实现严格遵循ACID特性,即原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability)。为了避免一上来就陷入对ACID的概念理解,我们直接先谈MyS...

2018-03-09 17:48:15

阅读数:47

评论数:0

MySQL使用可重复读作为默认隔离级别的原因之一

  一般的DBMS系统,默认都会使用读提交(Read-Comitted,RC)作为默认隔离级别,如Oracle、SQL Server等,而MySQL却使用可重复读(Read-Repeatable,RR)。要知道,越高的隔离级别,能解决的数据一致性问题越...

2018-03-09 17:47:45

阅读数:32

评论数:0

MySQL日志Undo&&Redo

00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。 - 事务的原子性(Atomicity)  事务中的所有操作,要么全部完成,要么不...

2018-03-09 17:46:39

阅读数:41

评论数:0

Mysql innodb 间隙锁

前段时间系统老是出现insert死锁,很是纠结。经过排查发现是间隙锁!间隙锁是innodb中行锁的一种, 但是这种锁锁住的却不止一行数据,他锁住的是多行,是一个数据范围。间隙锁的主要作用是为了防止出现幻读,但是它会把锁定范围扩大,有时候也会给我们带来麻烦...

2018-03-09 17:46:37

阅读数:33

评论数:0

MySQL隔离级别实验

事务具有ACID四种特性。但是Isolation并发可能引起如下问题:1.脏读允许读取到未提交的脏数据。2.不可重复读如果你在时间点T1读取了一些记录,在T2时再想重新读取一次同样的这些记录时,这些记录可能已经被改变、或者消失不见。3.幻读解决了不重复读...

2018-03-09 17:46:12

阅读数:50

评论数:0

AUTO_INCREMENT列在InnoDB里如何工作

如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。自动增长计数器仅被存储在主内存中,而不是存在磁盘上。  InnoDB使用下列算法来为包含一个名为ai_col的A...

2018-03-09 17:44:46

阅读数:28

评论数:0

数据库悲观锁和乐观锁

一、Oracle Oracle数据库悲观锁与乐观锁是本文我们主要要介绍的内容。有时候为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。 数据的锁定分为两种方法,第一种叫...

2018-03-09 17:42:23

阅读数:31

评论数:0

分库分表下uuid的生成

    分库分表时一般有必要自定义生成uuid,大企业一般有自己的uuid生成服务,其他它的实现很简单。我们以订单号为例,组成可以是"业务标识号+年月日+当日自增数字格式化",如0001201608140000020。...

2018-03-09 17:41:54

阅读数:283

评论数:0

高性能数据库连接池的内幕

大家可能会有这样疑问:连接池类似于线程池或者对象池,就是一个放连接的池子,使用的时候从里面拿一个,用完了再归还,功能非常简单,有什么可讲的。可能还会有这样的疑问:高性能这么高大上,一个小小的连接池,如何跟高大上靠上边的。本主题将会全面介绍连接池原理,高性...

2018-03-09 17:41:51

阅读数:42

评论数:0

MySQL聚簇索引

聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。具体的细节依赖于其实现方式,但innoddb 的聚簇索引实际上在同一个结构中保存了B-Tree索引和数据行。   当表有聚簇索引时,它的数据实际上存放在索引的叶子页(leaf page)中。术语‘...

2018-03-09 17:40:38

阅读数:37

评论数:0

MySQL使用可重复读作为默认隔离级别的原因之一

  一般的DBMS系统,默认都会使用读提交(Read-Comitted,RC)作为默认隔离级别,如Oracle、SQL Server等,而MySQL却使用可重复读(Read-Repeatable,RR)。要知道,越高的隔离级别,能解决的数据一致性问题越多,理论上性能损耗更大,可并发性越低。隔离...

2017-03-03 22:35:09

阅读数:3

评论数:0

MySQL隔离级别实验

事务具有ACID四种特性。 但是Isolation并发可能引起如下问题: 1.脏读 允许读取到未提交的脏数据。 2.不可重复读 如果你在时间点T1读取了一些记录,在T2时再想重新读取一次同样的这些记录时,这些记录可能已经被改变、或者消失不见。 3.幻读 解决了不重复读,保证了同一个...

2017-03-03 22:27:39

阅读数:0

评论数:0

MySQL聚簇索引

聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。具体的细节依赖于其实现方式,但innoddb 的聚簇索引实际上在同一个结构中保存了B-Tree索引和数据行。   当表有聚簇索引时,它的数据实际上存放在索引的叶子页(leaf page)中。术语‘聚簇’表示数据行和相邻的键值进错的存储在一...

2016-10-20 15:16:41

阅读数:2

评论数:0

MySQL日志Undo&Redo

00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。 - 事务的原子性(Atomicity)  事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行...

2016-10-17 23:25:09

阅读数:1

评论数:0

生产环境连接池和线程池配置参考

<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource"> <p...

2016-10-13 05:24:23

阅读数:3

评论数:0

Mysql innodb 间隙锁

前段时间系统老是出现insert死锁,很是纠结。经过排查发现是间隙锁!间隙锁是innodb中行锁的一种, 但是这种锁锁住的却不止一行数据,他锁住的是多行,是一个数据范围。间隙锁的主要作用是为了防止出现幻读,但是它会把锁定范围扩大,有时候也会给我们带来麻烦,我们就遇到了。 在数据库参数中, 控制间...

2016-10-10 20:07:32

阅读数:2

评论数:0

AUTO_INCREMENT列在InnoDB里如何工作

如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。自动增长计数器仅被存储在主内存中,而不是存在磁盘上。  InnoDB使用下列算法来为包含一个名为ai_col的AUTO_INCREMENT列的表T初始化自...

2016-10-09 23:55:46

阅读数:6

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭