• 欢迎访问 winrains 的个人网站!
  • 本网站主要从互联网整理和收集了与Java、网络安全、Linux等技术相关的文章,供学习和研究使用。如有侵权,请留言告知,谢谢!

2019年10月的内容

数据库

数据库内部存储结构探索

数据库内部存储结构探索
本文是左耳耗子推荐的Medium上的一篇关于MySQL的文章Some study on database storage internals,本人觉得文章十分好,就取得了作者的许可,自行进行了翻译,原文链接见文末。本文是一篇介绍性的文字,所以文中并没有对一些概念进行详细介绍,比如说Sorted Strings Table结构和Bloom filters算法……继续阅读 »

winrains 8个月前 (10-31) 23浏览 0评论 0个赞

MySQL

MySQL探索(8):InnoDB的事务

MySQL探索(8):InnoDB的事务
事务是数据库最为重要的机制之一,凡是使用过数据库的人,都了解数据库的事务机制,也对ACID四个基本特性如数家珍。但是聊起事务或者ACID的底层实现原理,往往言之不详,不明所以。所以,今天我们就一起来分析和探讨InnoDB的事务机制,希望能建立起对事务底层实现原理的具体了解。 事务的四大特性 数据库事务具有ACID四大特性。ACID是以下4个词的……继续阅读 »

winrains 8个月前 (10-31) 19浏览 0评论 0个赞

MySQL

MySQL探索(7):InnoDB行锁算法

MySQL探索(7):InnoDB行锁算法
在上一篇《InnoDB一致性非锁定读》中,我们了解到InnoDB使用一致性非锁定读来避免在一般的查询操作(SELECT FOR UPDATE等除外)时使用锁。然而锁这个事情是无法避免的,数据的写入,修改和删除都需要加锁。今天我们就继续学习InnoDB锁相关的知识。 由于文章涉及的概念比较多,害怕大家看完后会骂人,有一种字我都认识,就不太懂的感觉,文章会给……继续阅读 »

winrains 8个月前 (10-31) 22浏览 0评论 0个赞

MySQL

MySQL探索(6):InnoDB一致性非锁定读

MySQL探索(6):InnoDB一致性非锁定读
一致性非锁定读(consistent nonlocking read)是指InnoDB存储引擎通过多版本控制(MVVC)读取当前数据库中行数据的方式。如果读取的行正在执行DELETE或UPDATE操作,这时读取操作不会因此去等待行上锁的释放。相反地,InnoDB会去读取行的一个快照。 一致性非锁定读示意图 上图直观地展现了InnoDB一致性非锁……继续阅读 »

winrains 8个月前 (10-31) 21浏览 0评论 0个赞

MySQL

MySQL探索(5):InnoDB锁的类型和状态查询

MySQL探索(5):InnoDB锁的类型和状态查询
锁是数据库系统区分于文件系统的一个关键特性。数据库使用锁来支持对共享资源进行并发访问,提供数据的完整性和一致性。此外,数据库事务的隔离性也是通过锁实现的。InnoDB在此方面一直优于其他数据库引擎。InnoDB会在行级别上对表数据上锁,而MyISAM只能在表级别上锁,二者性能差异可想而知。 InnoDB存储引擎中的锁 InnoDB存储引擎实现了如下两种标……继续阅读 »

winrains 8个月前 (10-31) 23浏览 0评论 0个赞

MySQL

MySQL探索(4):InnoDB的磁盘文件及落盘机制

MySQL探索(4):InnoDB的磁盘文件及落盘机制
任何一个技术都有其底层的关键基础技术,这些关键技术很有可能也是其他技术的关键技术,学习这些底层技术,就可以一通百通,让你很快的掌握其他技术。如何在磁盘上存储数据,如何使用日志文件保证数据不丢失以及如何落盘,不仅是MySQL等数据库的关键技术,也是MQ消息队列或者其他中间件的关键技术之一。 InnoDB整体架构 上图详细显示了InnoDB存储引擎……继续阅读 »

winrains 8个月前 (10-31) 18浏览 0评论 0个赞

MySQL

MySQL探索(3):InnoDB的内存结构和特性

MySQL探索(3):InnoDB的内存结构和特性
常言说得好,每个成功男人背后都有一个为他默默付出的女人,而对于MySQL来说,这个“人”就是InnoDB存储引擎。 MySQL区别于其他数据库的最为重要的特点就是其插件式的表存储引擎。而在众多存储引擎中,InnoDB是最为常用的存储引擎。从MySQL5.5.8版本开始,InnoDB存储引擎是默认的存储引擎。 InnoDB存储引擎支持事务,其设计目标主要面……继续阅读 »

winrains 8个月前 (10-31) 18浏览 0评论 0个赞

MySQL

MySQL探索(2):SQL语句执行过程详解

MySQL探索(2):SQL语句执行过程详解
昔日庖丁解牛,未见全牛,所赖者是其对牛内部骨架结构的了解,对于MySQL亦是如此,只有更加全面地了解SQL语句执行的每个过程,才能更好的进行SQL的设计和优化。 当希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的。一旦理解了这一点,很多查询优化工作实际上就是遵循一些原则能够按照预想的合理的方式运行。 如下图所……继续阅读 »

winrains 8个月前 (10-31) 14浏览 0评论 0个赞

MySQL

MySQL探索(1):B-Tree索引

MySQL探索(1):B-Tree索引
MySQL是目前业界最为流行的关系型数据库之一,而索引的优化也是数据库性能优化的关键之一。所以,充分地了解MySQL索引有助于提升开发人员对MySQL数据库的使用优化能力。 MySQL的索引有很多种类型,可以为不同的场景提供更好的性能。而B-Tree索引是最为常见的MySQL索引类型,一般谈论MySQL索引时,如果没有特别说明,就是指B-Tree索引。本文……继续阅读 »

winrains 8个月前 (10-31) 20浏览 0评论 0个赞

Redis

了解 Redis 的数据结构和对象系统

了解 Redis 的数据结构和对象系统
Redis是一个开源的 key-value 存储系统,它使用六种底层数据结构构建了包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象的对象系统。今天我们就通过12张图来全面了解一下它的数据结构和对象系统的实现原理。 本文的内容如下: 首先介绍六种基础数据结构:动态字符串,链表,字典,跳跃表,整数集合和压缩列表。 其次介绍 Redis 的对象系统中……继续阅读 »

winrains 8个月前 (10-31) 19浏览 0评论 0个赞