后记:数据库的事务是一个非常重要的特性,这篇漫画主要讲它的实现原理,尤其是在极端情况下(如断电)如何保证“要么不做,要么全做”的原子性以及数据不丢失的持久性,实现的原理比较简单也很精巧,就是通过...
我在研究HikariCP(一个数据库连接池)时无意间在HikariCP的Github wiki上看到了一篇文章,这篇文章有力地消除了我一直以来的疑虑,看完之后感觉神清气爽。故在此做译文分享。 文章链接: https://github.com/...
当数据库的数据量过大,大到一定的程度,我们就可以进行分库分表。那么基于什么原则,什么方法进行拆分,这就是本篇所要讲的。 图片来自 Pexels 数据库瓶颈 不管是 IO 瓶颈还是 CPU 瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚...
1.数据库并发控制的作用 1.1 事务的概念 在介绍并发控制前,首先需要了解事务。数据库提供了增删改查等几种基础操作,用户可以灵活地组合这几种操作,实现复杂的语义。在很多场景下,用户希望一组操作可以做为一个整体一起生效,这就是事务。事务是数...
1. 虚拟机的世界 一个安静的夜晚,我,一个新的线程诞生了! 我抬头一看,原来我降生的地方是在一个IE浏览器中,这里是一个Windows帝国! 一生下来就要干活了,拿着我的代码开始忙活。 忙碌了一会儿,正当我在磁盘上写入了一个kernerl...
引言 昨天公众号粉丝咨询了一个问题,说自己之前面试被问@Transactional注解哪些场景下会失效,一时语塞致使面试失败。所以今天简单的和大家分享一下@Transactional相关的知识。 @Transactional 注解相信大家...
前言 本文将结合实例demo,阐述30条有关于优化SQL的建议,多数是实际开发中总结出来的,希望对大家有帮助。 1、查询SQL尽量不要使用select *,而是select具体字段。 反例子: select*fromemployee; 正例...
前言 Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Bai...
前言 之前分析一个死锁问题,发现自己对数据库隔离级别理解还不够深入,所以趁着这几天假期,整理一下MySQL事务的四大隔离级别相关知识,希望对大家有帮助~ 事务 什么是事务? 事务,由一个有限的数据库操作序列构成,这些操作要么全部执行,要么...
数据库管理系统在今天已经是软件的重要组成部分,开源的 MySQL、PostgreSQL 以及商业化的 Oracle 等数据库已经随处可见,几乎所有的服务都需要依赖数据库管理系统存储数据。 database-banner 图 1 –...