教你使用数据库的悲观锁 for update 创建分布式锁

herman 1个月前 (09-17) 109浏览 0评论

锁不管是在工作中还是生活中都到处存在。在编程的世界中,也是普遍的存在,用不好,会产生很多麻烦问题。 前两天有一个网友在群里问我 synchronized 锁的问题,当时没怎么细说,以后有时间了来写篇文章。本文主要是介绍借用数据库的悲观锁来实...

看图说话,脏读、不可重复读、幻读分别是什么?

herman 1个月前 (09-14) 134浏览 0评论

事务的隔离性是一个一说就明白,一讲就糊涂,一讨论就吵架的话题。很多人对概念记得很牢,但是你让他们解释一下,脏读、不可重复读、幻读,他们却解释不出来,尤其是不可重复读和幻读两种搞不清或者搞混淆。其实它们很简单,可能就是你的方法没找对。 数据库...

你真的懂 select count(*) 吗?

herman 1个月前 (09-12) 124浏览 0评论

如题,你真的懂 select count(*) 吗?很多面试者或者高级开发工程师都会说不要用 count(*),这样写查询会比较慢。count(1) 比 count(*) 快,这样说真的对吗?且听本文来讲解,我们一起来较真儿! 在某些时候,...

InnoDB 的 select 行锁还是表锁

herman 1个月前 (09-12) 148浏览 0评论

前面有一篇文章说到了,InnoDB 的 select 查询会锁表,有的人不信。然而有的人学习能力很强,立马在官方网站上找到了,select 查询会锁表,就看你怎么使用,并不是说所有的 select 查询都会锁表。具体看你的事务隔离级别,和编写的查...

给postgresql数据库的表和列添加注释(comment)

herman 6个月前 (05-05) 1936浏览 0评论

postgresql 数据库国内用的人并不是很多,而一些老项目采用了这个数据库。维护起来特别麻烦,因为国内用的人比较少,相关资料也很少。 另外还有一些函数,postgresql 也没有对应的提供。还有对于表分区,低版本的 post...

MySQL使用binlog(二进制日志)主从复制教程

herman 9个月前 (02-02) 564浏览 0评论

复制是mysql最重要的功能之一,mysql集群的高可用、负载均衡和读写分离都是基于复制来实现的;从5.6开始复制有两种实现方式,基于binlog和基于GTID(全局事务标示符);本文接下来将介绍基于binlog的一主一从复制。 基于bin...

MySQL binlog(二进制日志)解析

herman 9个月前 (02-01) 394浏览 0评论

binlog 顾名思义就是一种二进制日志,是一种与innodb引擎中redo/undo log完全不同的日志。它主要是用来记录对mysql数据更新或潜在发生更新的SQL语句,并以"事务"的形式保存在磁盘中。 binlog...

MySQL的多版本并发控制MVVC

herman 9个月前 (01-31) 1242浏览 0评论

MVVC 一词常见于前端框架的设计模式当中。但是 MySQL 中的 MVVC 和前端框架中所代表的意思完全不一样。在 MySQL 中 MVVC 一词代表的是多版本并发控制。下面我们来尝试着学习它。 MVCC的全称...

Redis、MongoDB、BerkeleyDB、Memcached等NoSQL数据库总结

herman 11个月前 (11-12) 1154浏览 0评论

随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,于是NoSQL就应用而生。目前常用的NoSQL数据库有10种( Cassandra、M...