关系型数据库
vernonzheng
java/clojure/nodejs/python
关注大型服务器程序开发、中间件、系统架构、分布式、大数据等等。
blog:vernonzheng.com
email:kevonzheng@gmail.com
豆瓣:http://www.douban.com/people/79461162/
github:https://github.com/vernonzheng
展开
-
数据库事务与隔离级别
一、数据库事务的定义 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久转载 2012-10-07 13:22:37 · 1132 阅读 · 0 评论 -
利用散列算法优化唯一索引性能(长文本字段的唯一索引优化)
问题 我们通常需要对一些长文本字段建立唯一索引,比如,我们自己的应用里面,经常会有 URL 或者 URI 字段,里面保存类似: http://www.pgsqldb.org/mwiki/index.php http://www.eeeeworks.org/#post-27 这样的数据,并且要求唯一、不重复,常见的做法是创建一个唯一索引: create unique i转载 2012-10-16 22:36:05 · 1837 阅读 · 0 评论 -
PostGresql索引深入分析
一、索引的类型: PostgreSQL提供了多种索引类型:B-Tree、R-Tree、Hash、GiST和GIN,由于它们使用了不同的算法,因此每种索引类型都有其适合的查询类型,缺省时,CREATE INDEX命令将创建B-Tree索引。 1. B-Tree: CREATE TABLE test1 ( id integer,原创 2012-10-17 22:22:51 · 4552 阅读 · 0 评论 -
Hibernate事务并发问题处理(乐观锁与悲观锁)
使用悲观锁解决事务并发问题 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。 一个典型的依赖数据库原创 2012-10-07 11:56:47 · 2330 阅读 · 0 评论