摘要: 前言 从古至今,人类会用各种方式记录数据,从原始时期在木头和骨头上刻痕,到古代文明中的竹简、丝帛以及纸张上的笔墨记载,直到20世纪50年代,人类对数据的管理进入数据库时代。在数据库成为当今数字化时代记录和管理数据的主要方式之一,你知道其发展历程吗?让我们一起了解中国数据库的前世今生吧。 国外数据库技 阅读全文
posted @ 2024-08-14 15:51 王二蛋! 阅读(0) 评论(0) 推荐(0) 编辑
摘要: MySQL一致性的保证基本上涉及到InnoDB存储引擎的各个组件,「Buffer Pool」、「Log Buffer」、「Redo Log」、「Undo Log」等,还有DML操作的流程、锁、故障恢复等功能。最后再总结下MySQL是如何保证一致性的。 1. 对于并发操作带来的数据不一致性问题,InnoDB通过锁来解决。 2. 对于可能会发生的redolog不完整的情况,InnoDB通过Undo Log来解决。 3. 对于redolog&binlog不一致带来的主从节点数据不一致,MySQL是通过XA两阶段提交来解决。 阅读全文
posted @ 2024-01-04 10:17 王二蛋! 阅读(302) 评论(0) 推荐(0) 编辑
摘要: MySQL是如何保证数据不丢失的? MySQL作为一个存储数据的产品,怎么确保数据的持久性和不丢失才是最重要的,感兴趣的可以跟随本文一探究竟。 阅读全文
posted @ 2023-12-20 10:50 王二蛋! 阅读(46) 评论(0) 推荐(1) 编辑
摘要: 了解了SQL语句的执行流程以及MySQL体系结构中「**连接器**」、**「SQL接口」**、**「解析器」**、「**优化器**」、「**执行器**」的功能以及在整个流程中的作用。不过上篇文章留了个尾巴,在执行器调用存储引擎后,存储引擎内部做了什么事没有进一步说明,本文会对此展开介绍,使得我们对SQL整体的执行流程有更加清晰的认识。 阅读全文
posted @ 2023-12-13 17:59 王二蛋! 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 如果你在使用MySQL时只会写sql语句的,那么你应该看一下《MySQL优化的底层逻辑》。如果你只了解到sql是如何优化的,那么你应该通过本文了解一下Mysql的体系结构以及sql语句的执行流程。 阅读全文
posted @ 2023-11-24 15:30 王二蛋! 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 去年刚开始写博客的时候写了一篇《MySQL性能调优参考》,文章中提到优化的几个技巧,比如数据类型的使用、范式和反范式的合理使用、索引的使用及其使用的注意事项等等。其中我们接触最多的就是索引,你可能知道索引的底层结构是B+Tree、使用索引要遵守最左匹配原则,那你知道为什么要用B+Tree、为什么使用索引有那么多注意事项吗?所以还是要知其然知其所以然,看完这篇文章你就懂了。 阅读全文
posted @ 2023-11-17 17:19 王二蛋! 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 大家应该都知道一些哈希算法,比如MD5、SHA-1、SHA-256等,通常被用于唯一标识、安全加密、数据校验等场景。除此之外,还有一种应用是对某个数据进行哈希取模映射到一个有限的范围,比如哈希表快速定位、分库分表数据分配等。本文将以分库分表为主题,介绍另外一种哈希算法,并详细说明其在分库分表中的应用与优势。 阅读全文
posted @ 2023-11-05 17:09 王二蛋! 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 不知道大家在面试时有没有被问过“如何在大量数据中快速检测某个数据是否存在”。如果有过相关的思考和解决方案,看看你的方案是否和本文一样。如果还没有,那希望看了本文后可以给你提供一些启发和帮助,以备之后的使用和面试。 阅读全文
posted @ 2023-10-30 10:44 王二蛋! 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 红黑树为什么这么火呢?大家应该都很清楚,面试的时候不管三七二十一,就问你:什么是红黑树,为什么要用红黑树?就好像他很懂,就好像知道红黑树就很牛逼一样。 whatever,如果还不懂红黑树,不管有没有基础的,希望通过本次的介绍,可以帮助你更容易的理解红黑树。 阅读全文
posted @ 2023-10-23 18:07 王二蛋! 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 上文对常见的数据结构进行了简单介绍,包括它们的定义、性质和特点。本文将对AVL树展开介绍,通过对AVL树的插入、删除、查找以及旋转操作全面掌握AVL树。 阅读全文
posted @ 2023-10-20 15:48 王二蛋! 阅读(14) 评论(0) 推荐(0) 编辑