资深研发架构师
我们在第二期中讲过,HASH算法是一种非常快速的查找算法,可以用于对数据进行分区和分片。但是有一个问题。根据常规哈希算法算出来的哈希值,通常是无法扩展的,也就是说,假如说,我们一开始想将数据分成四个数据片,随着我们数据量的增长,四个数据片都接近了系统的极限,现在我们想加入一个新的数据片。这时使用传统的哈希算法,通常是无法做到的。只能讲数据重新在汇总起来再重新分成五分,这样就导致了巨大的运维成本。
排序也是数据库中非常非常常见的场景,很多数据的数值字段的顺序具有非常重要的意义,比如我们要选择近期消费的客户并且按照消费得多少排序,形成数据表格,即 SELECT * FROM CUSTOMER ORDER BY ORDER_AMOUT LIMIT 100 在这个场景中,我们就需要查找出数据并且进行排序,那么常用的排序算法有哪些呢。
上一期我们谈到了数据库实现快速查找的所使用的的HASH算法,能够实现O(1)复杂的快速查找,HASH算法虽然好,但是有一个致命的缺点,就是HASH函数算出的散列值,通常是随机分布,没有顺序性。这时候我们就需要使用到B树
从一堆数据中很快的查找出某一个数据位置,或者用某一个字段的值,来查找出整条记录,这样的情况在数据库中是非常普遍的情况。所以一定要有非常高效的算法能够实现这样的场景,由于数据库存储的记录又非常的多,所以,最好算法复杂度能够是O(1)。这样,查找的速度不会随着数据的增长而原来越慢。那么HASH算法就是这样一个很好的算法
内存规划对于数据库的使用是至关重要的,因为内存的速度快于硬盘,但是内存的价格更贵,所以往往容量比硬盘小很多。那么好钢要用在刀刃上,所以一个好的内存管理算法对于数据库是非常重要的。LRU就是最为常用的数据库内存管理算法之一
内存规划使用对于数据库是至关重要的,因为内存的速度快于硬盘,但是内存的价格更贵,所以往往容量比硬盘小很多。那么好钢要用在刀刃上,所以一个好的内存管理算法对于数据库是非常重要的。LRU算法就是数据库常用的内存管理算法之一。
MySQL数据库作为一个主流数据库,对于意外宕机的情况下,数据的一致性和完整性,必须要有保障,那么具体原理是怎样的呢
写出简洁,易懂的程序是每个程序员追求的目标,怎样做到这一点,是否有规律可以遵循,我们一起来探讨
对于MySQL的高可用场景,主从复制是一个非常简单有效的方案,他的原理和架构是怎样的,让我们一探讨
我们程序不可避免的会出现bug,那么我们能做哪些事情,尽可能减少bug的产生
NSA Spy Cloud 是美国用来监控网络信息的云服务设施,通过对他的架构分析,我们可以对监控系统的架构设计和网络安全有更进一步的了解
收集类的抽卡手游,是玩家们喜闻乐见的一类游戏,他们背后又有哪些程序算法?我们一起来探讨
数据库一个很重要的功能就是事务,本文介绍MySQL的事务的机制,锁和多版本并发等原理,希望对大家的数据库设计有所帮助
存储引擎是MySQL非常独特的一个设计,本文从存储结构的角度介绍了MySQL不同存储引擎的特点,帮助大家在业务中更好的选择,和更好的设计数据库。
索引是数据库中的一种非常重要的存储结构。优秀的索引对于数据库性能有着很大的提升。本文解析了MySQL索引的原理,并给出了一些索引的设计原则
我们来详细的分析一下处理引擎的作用。处理引擎相当于MySQL的大脑。他有三个非常重要的作用。管理理连接与线程、管理query cache、 解析SQL语句与执⾏计划⽣生成
我们来详细的分析一下处理引擎的作用。处理引擎相当于MySQL的大脑。他有三个非常重要的作用。管理理连接与线程、管理query cache、 解析SQL语句与执⾏计划⽣生成
MySQL是目前互联网公司应用最广泛的数据库软件(DBMS),没有之一。阿里云也提供了MySQL的云版本——云数据库RDS MySQL版。这一系列的文章希望能帮助大家更好的了解MySQL,更好的发挥数据库的性能,让我们的数据存储更有效率。
通常我们所谓的程序设计,其实包含编码与设计两个部分,编码行为一般为人们所熟知,被称为coding,然而设计过程却容易为大家所忽视。
在未来,很多行业里,如何使用计算机更高效的辅助工作,如何理解人工智能与计算机的机制以及产生的结果并作出正确的判断,将可能是人们的核心竞争力。