「从零单排HBase 12」HBase二级索引Phoenix使用与最佳实践
Phoenix是构建在是构建在HBase上的一个SQL层,扩展了二级索引。?当然,开源产品嘛,自然需要注意“避坑”啦,阿丸会把使用方式和最佳实践都告诉你。
「从零单排HBase 11」HBase二级索引解决方案
通过对比各个二级索引方案的优缺点,并结合我们的具体场景做出HBase二级索引方案选型。
聊一聊关于MySQL的count(*)
1.背景自从大家对于MySQL数据库的稳定性有了更高的追求后,经常有小伙伴有这样的疑问,对于count(*)这样的操作,有没有正确的姿势,或者有没有可以优化的地方?但答案比较残酷,如果已经使用了正确的索引,那么基本上没有可以优化的地方。一旦出现慢查询了,它就是慢查询了,要改,只能自己计数或者通过其他
为什么MySQL分库分表后总存储大小变大了?
1.背景在完成一个分表项目后,发现分表的数据迁移后,新库所需的存储容量远大于原本两张表的大小。在做了一番查询了解后,完成了优化。回过头来,需要进一步了解下为什么会出现这样的情况。与标题的问题的类似问题还有,为什么表数据内容删除了而表大小没有变化。其本质都是一样的。要回答这些问题,我们需要从mysql
两文说透MySQL里的各种锁(上篇)
【MySQL系列相关】1.聊一聊关于MySQL的count(*)2.为什么MySQL分库分表后总存储大小变大了?0.前言MySQL按照加锁的范围,分为全局锁、表级锁、行级锁。本文作为上篇,主要介绍MySQL的全局锁和表级锁。重要的实战总结为,如何安全地变更一个表的表结构。搞个图做封面1.全局锁定义:
两文说透MySQL里的各种锁(下篇)
在上篇中,我们介绍了MySQL中的全局锁和表锁。今天,我们专注于介绍一下行锁,这个在日常开发和面试中常常困扰我们的问题。1.行锁基础由于全局锁和表锁对增删改查的性能都会有较大影响,所以,我们自然会想到,只需要对有修改的行加锁就行了,这就是行锁。在事务中,事务1更新了一行主键为1的数据行,那么,在这个
MySQL数据库无完整备份删库,除了跑路还能怎么办?
1.背景前段时间,由于运维同事的一次误操作,清空了内网核心数据库,导致了公司内部管理系统长时间不可用,大量知识库内容由于没有备份险些丢失。结合这两天微盟的删库跑路事件,我们可以看到,数据库的备份与恢复显得尤为重要。本文将对此次内网数据恢复过程做一些整理,介绍删库后的抢救方案。同时,引发对数据库稳定性
「从零单排HBase 01」从一无所知到5分钟快速了解HBase
最近公司正好准备投入HBase,因此做了一些基础学习准备,所以先暂时停止MySQL的更新,把HBase的学习心得跟大家分享一下,接下来一段时间都会发布HBase相关内容。在学的过程中,发现跟MySQL相互对比,能更深入地了解存储组件的设计。有任何问题或者想看的知识点,欢迎留言跟我沟通。1.前言随着公
「从零单排HBase 02」全面认识HBase架构
在网上看过很多HBaes架构相关的文章,内容深浅不一,直到发现了一篇MapR官网的文章https://mapr.com/blog/in-depth-look-hbase-architecture/#.VdMxvWSqqko,写得实在太生动了。因此,以这篇文章作为骨架,翻译了许多原文的内容,同时对一些
「从零单排HBase 03」深入HBase读写
在了解HBase架构的基础上,我们需要进一步学习HBase的读写过程,一方面是了解各个组件在整个读写过程中充当的角色,另一方面只有了解HBase的真实请求过程,才能为后续的正确使用打下初步基础,毕竟,除了会使用api,你还得知道怎么能写得更快,怎么查得更快。1.首次读写的基本过程在上一篇深入HBas
「从零单排HBase 04」HBase高性能查询揭秘
先给结论吧:HBase利用compaction机制,通过大量的读延迟毛刺和一定的写阻塞,来换取整体上的读取延迟的平稳。1.为什么要compaction在上一篇HBase读写中我们提到了,HBase在读取过程中,会创建多个scanner去抓去数据。其中,会创建多个storefilescanner去lo
「从零单排HBase 05」核心特性region split
HBase拥有出色的扩展性,其中最依赖的就是region的自动split机制。1.split触发时机与策略前面我们已经知道了,数据写入过程中,需要先写memstore,然后memstore满了以后,flush写入磁盘,形成新的HFile文件。当HFile文件数量不断累积,Regionserver就会
数据库中间件漫谈——看看云时代,它会走向何方
1.前言随着业务的发展,MySQL数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大;另外,无论怎样升级硬件资源,单台服务器的资源(CPU、磁盘、内存、网络IO、事务数、连接数)总是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。分表、分库和读写分离可
谈谈程序员的非技术思维
最近跟一个阿里的朋友聊到关于程序员如何把事情做得更好,他提到了很多在阿里的感受,让我受益匪浅。所谓“如何把事情做得更好”,就是跳出写代码这件事,如何把我们的工作做好,获得更多的个人成长,获得更好的绩效考核结果,并能在其他人中脱颖而出。思维碰撞下,得到了很多有效的信息,总结为三个方面的“管理”能力,目
「从零单排HBase 06」生产环境使用HBase,你必须知道的最佳实践
前面,我们已经打下了很多关于HBase的理论基础,今天,我们主要聊聊在实际开发使用HBase中,需要关注的一些最佳实践经验。1.Schema设计七大原则1)每个region的大小应该控制在10G到50G之间;2)一个表最好保持在50到100个region的规模;3)每个cell最大不应该超过10MB
关于校招面试要怎么准备,这里有一些过来人的建议
最近很多同学咨询关于校招准备的问题,沟通下来发现发现了很多共性的问题,因此,今天总结一下这些问题,为希望进入互联网研发岗位的同学提供一些参考建议。1.专业有决定性影响吗?答案是否定的。最近几年经常负责面试社招和校招,校招也面试过很多非计算机专业的同学。实际上,能拿到offer的同学跟专业本身有一定关
谈谈程序员的非技术思维
最近跟一个阿里的朋友聊到关于程序员如何把事情做得更好,他提到了很多在阿里的感受,让我受益匪浅。所谓“如何把事情做得更好”,就是跳出写代码这件事,如何把我们的工作做好,获得更多的个人成长,获得更好的绩效考核结果,并能在其他人中脱颖而出。思维碰撞下,得到了很多有效的信息,总结为三个方面的“管理”能力,目
跟面试官侃半小时MySQL事务,说完原子性、一致性、持久性的实现
这篇文章比较难写,一些知识可能不是特别常用,不说可能会有疑惑,但是细扣又容易陷入细节,前后反复修改了好几遍,希望能逻辑连贯、深入浅出、杜绝又臭又长。觉得不错的话点个在看吧。另外,封面很难找,以后打算发自己做的菜,hiahia~提到MySQL的事务,我相信对MySQL有了解的同学都能聊上几句,无论是面
「从零单排HBase 07」如何正确管理HBase的连接
本文将介绍HBase的客户端连接实现,并说明如何正确管理HBase的连接。最近在搭建一个HBase的可视化管理平台,搭建完成后发现不管什么查询都很慢,甚至于使用api去listTable都要好几秒。经过一番排查发现,是每次请求的时候,都去临时创建了一个connection,而创建connection
「从零单排HBase 08」HBase可用性分析与高可用实践
HBase作为一个分布式存储的数据库,它是如何保证可用性的呢?对于分布式系统的CAP问题,它是如何权衡的呢?最重要的是,我们在生产实践中,又应该如何保证HBase服务的高可用呢?下面我们来仔细分析一下。1.什么是分布式系统的CAP?CAP是指一致性(Consistency)、可用性(Availabi