数据库内核的并发控制 (www.ideawu.net)

【简介】

大部分程序员最先接触并发编程, 一般是从编程语言里的多线程和锁开始. 但是, 并发控制是一种广义的技术思想, 千万不可将眼光局限于编程语言所提供的锁. 将编程语言里的并发控制技术推广, 就能得到任何层面的并发控制技术.

以操作一个文件为例, 如果不做并发控制, 就会遇到数据完整性问题. 例如, 我们写入的一项数据, 对应着现实对象, 如果不做并发控制, 那么可能读到的时两项数据的混合体, 或者只读到一项数据的部分.

点击查看全文 >>

@技术头条 2021-06-13 22:42分享 / 原作者微博:@ideawu / 0个评论
赞过的人: IT技术博客大学习
要不要再学学下面的文章?
数据库全量SQL分析与审计系统性能优化之旅 (tech.meituan.com)
全量SQL(所有访问数据库的SQL)可以有效地帮助安全进行数据库审计,帮助业务快速排查性能问题。一般可通过开启genlog日志或者启动MySQL审计插件方式来进行获取,而美团选用了一种非侵入式的旁路抓包方案,使用Go语言实现。无论采用哪种方案,都需要重点关注它对数据库的性能损耗。本文介绍了美团基础研发平台抓包方案在数据库审计实践中遇到的性能问题以及优化实践,希望能对大家有所帮助或启发。
by @技术头条 2022-07-24 20:48 分享 查看详情
MySQL 云数据库物理备份本地恢复方案 (soulteary.com)
在国内不论是使用阿里云、腾讯云还是华为云的云平台版本的 MySQL 数据库,在遇到数据备份恢复的场景,都会遇到需要使用 Percona XtraBackup 工具进行备份还原的需求。看着网上一堆既啰嗦又落后的备份恢复方案,不免厌烦,借着再次帮朋友做数据迁移的机会,整理分享之前的实战笔记,希望能够帮助到有需求的同学。
by @技术头条 2022-05-23 00:09 分享 查看详情
数据库内核的快照技术实现原理 (www.ideawu.net)
"快照(Snapshot)"是数据库领域非常重要的一个概念, 最初是用于数据备份. 如今, 快照技术已经成为数据库内核(引擎)最核心的技术特性之一. 数据库内核的绝大多数操作, 都依赖于快照, 例如, LevelDB 的每一次读取操作和遍历操作, 其内部都必须创建一个快照, 所以, 对于一个请求量非常大的系统, 数据库内核每秒种就要创建和销毁几十万次快照. 因此, 如何快速地创建和销毁快照, 成为一个数据库内核(引擎)必须要解决的问题.

本文从源头出发, 逐步推演, 探讨数据库内核是如何实现快照技术的.
by @技术头条 2022-05-06 23:33 分享 查看详情
一个Go语言实现的数据库 (mp.weixin.qq.com)
rosedb 是一个稳定、高性能、快速、内嵌的 k-v 数据库,支持多种数据结构,包含 String、List、Hash、Set、Sorted Set,接口名称风格和 Redis 类似。

rosedb 数据文件布局基于 LSM Tree 和 WAL,纯 Golang 实现,易于使用、扩展。我们的愿景是打造一个高效的 k-v 存储引擎,你可以给我们提任何建议,也请给我们一个 start ✨ 吧,非常感谢!
by @code小生 2022-03-27 23:42 分享 查看详情
MySQL数据库插入100w条数据要花多久? (mp.weixin.qq.com)
问:为何对同一个表的插入多线程会比单线程快?同一时间对一个表的写操作不应该是独占的吗?

答:在数据里做插入操作的时候,整体时间的分配是这样的:
by @code小生 2022-02-20 19:59 分享 查看详情
frm和ibd文件数据库恢复 (www.xifenfei.com)
这次客户rm -rf /var/lib/mysql删除文件,删除一半及时终止,但是已经有很多mysql相关文件被删除,重要的ibdata文件已经被删除,并且客户尝试了大量的恢复工作,对该分区进行了大量的写入操作,导致后面通过对xfs文件系统进行分析,确认无法恢复对应的ibdata文件.比较幸运客户需要的核心的mysql库都还在(frm和ibd文件还存在)。
by @技术头条 2022-02-04 19:52 分享 查看详情
5个免费在线SQL数据库环境,简直太方便了! (mp.weixin.qq.com)
今天给大家分享几个在线的免费 SQL 运行环境,也就是在线数据库。这些网站可以帮助我们快速运行一些 SQL 语句的测试或者验证,同时还可以在网络上进行分享,关键不需要自己安装数据库。
by @code小生 2022-01-27 19:53 分享 查看详情
数据库拆分实战 (insights.thoughtworks.cn)
数据库重构和代码重构有相似之处,也有不同之处。相似之处在于修改的过程中基本的思路是一致的,测试->修改->测试,小步快跑,反复迭代。不同之处在于拆库还依赖于硬件的基础设施,这就更要求测试环境尽量去模拟生产环境。
by @Thoughtworks 2021-11-26 15:50 分享 查看详情
为什么微服务要有独立数据库 (insights.thoughtworks.cn)
每个微服务拥有独立的数据库作为微服务架构风格提倡的实践之一,和其他实践一起,像鲁班锁中的积木一样巧妙组合在一起,共同支撑了微服务架构风格所具备的优点,在软件开发实践过程中,只有遵守微服务架构风格所推荐的这些实践,才能最大化的发挥微服务架构的优势。
by @Thoughtworks 2021-10-09 10:57 分享 查看详情
一套属于前端的版本控制系统!更新!!不求人!!! (mp.weixin.qq.com)
公司之前更新前端代码需要远程到服务器后,将对应打包好的项目代码复制到目录中去。在更新频繁的时候,中间所浪费的无用时间就变的很多,加上回退版本还要涉及到备份的操作,多服务器的时候还要记住密码账号等等等操作就会觉得繁琐。再加之人员众多,服务器的安全性也无法得到保障。遂计划开发出一套前端版本控制的解决方案。经过2020一整年,3个大版本的迭代,最终完成了正式的1.0版本。包括版本上传,切换,测试,上线,删除,备份等功能,很好的解决的公司内部问题。在这里分享出我自己的三个版本的思路(仅有思路以及部分代码),有不同想法和各种建议欢迎讨论~
by @code小生 2021-07-18 23:04 分享 查看详情