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