摘要:
1.前言 随着业务的发展,MySQL数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大;另外,无论怎样升级硬件资源,单台服务器的资源(CPU、磁盘、内存、网络IO、事务数、连接数)总是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。 分表、分库和读写分 阅读全文
摘要:
前面,我们已经打下了很多关于HBase的理论基础,今天,我们主要聊聊在实际开发使用HBase中,需要关注的一些最佳实践经验。 1.Schema设计七大原则 1)每个region的大小应该控制在10G到50G之间; 2)一个表最好保持在 50到100个 region的规模; 3)每个cell最大不应该 阅读全文
摘要:
HBase拥有出色的扩展性,其中最依赖的就是region的自动split机制。 1.split触发时机与策略 前面我们已经知道了,数据写入过程中,需要先写memstore,然后memstore满了以后,flush写入磁盘,形成新的HFile文件。 当HFile文件数量不断累积,Region serv 阅读全文
摘要:
先给结论吧:HBase利用compaction机制,通过大量的读延迟毛刺和一定的写阻塞,来换取整体上的读取延迟的平稳。 1.为什么要compaction 在上一篇 HBase读写 中我们提到了,HBase在读取过程中,会创建多个scanner去抓去数据。 其中,会创建多个storefilescann 阅读全文
摘要:
在了解HBase架构的基础上,我们需要进一步学习HBase的读写过程,一方面是了解各个组件在整个读写过程中充当的角色,另一方面只有了解HBase的真实请求过程,才能为后续的正确使用打下初步基础,毕竟,除了会使用api,你还得知道怎么能写得更快,怎么查得更快。 1.首次读写的基本过程 在上一篇 深入H 阅读全文
摘要:
最近公司正好准备投入HBase,因此做了一些基础学习准备,所以先暂时停止MySQL的更新,把HBase的学习心得跟大家分享一下,接下来一段时间都会发布HBase相关内容。 在学的过程中,发现跟MySQL相互对比,能更深入地了解存储组件的设计。有任何问题或者想看的知识点,欢迎留言跟我沟通。 1.前言 阅读全文
摘要:
在网上看过很多HBaes架构相关的文章,内容深浅不一,直到发现了一篇MapR官网的文章https://mapr.com/blog/in-depth-look-hbase-architecture/#.VdMxvWSqqko,写得实在太sheng dong了。 因此,以这篇文章作为骨架,翻译了许多原文 阅读全文
摘要:
1.背景 前段时间,由于运维同事的一次误操作,清空了内网核心数据库,导致了公司内部管理系统长时间不可用,大量知识库内容由于没有备份险些丢失。 结合这两天微盟的删库跑路事件,我们可以看到,数据库的备份与恢复显得尤为重要。 本文将对此次内网数据恢复过程做一些整理,介绍删库后的抢救方案。 同时,引发对数据 阅读全文
摘要:
在上篇中,我们介绍了MySQL中的全局锁和表锁。 今天,我们专注于介绍一下行锁,这个在日常开发和面试中常常困扰我们的问题。 1.行锁基础 由于全局锁和表锁对增删改查的性能都会有较大影响,所以,我们自然会想到, 只需要对有修改的行加锁就行了,这就是行锁。 在事务中,事务1更新了一行主键为1的数据行,那 阅读全文
摘要:
0.前言 MySQL按照加锁的范围,分为全局锁、表级锁、行级锁。 本文作为上篇,主要介绍MySQL的全局锁 和 表级锁。 重要的实战总结为,如何安全地变更一个表的表结构。 1.全局锁 定义: 全局锁就是对整个数据库实例加锁。 全局锁语法: Flush tables with read lock (F 阅读全文