我们常用的存储系统种类非常多,有单机的也有分布式的,有的是数据库,有的是文件系统,还有介于二者之间的。无论是哪种存储系统(比如,MySQL、Redis、Elasticsearch,等等),它们都具有如下三个特点。
难用体现在哪些方面呢?对于应用程序来说,存储的作用是安全可靠地保存数据,在我们需要的时候能够快速存取。遗憾的是,目前几乎没有一种存储系统能够满足这个简单的要求。
对于存储系统难用的特性,业内有一个非常形象的比喻:开着车去商场购物,到了停车场发现这里不能存车,只能存零件,必须先把车子拆散,然后把这些零件分门别类地打上标签存放到停车场对应的货架上,走的时候再把零件逐一取出来进行组装。
听起来似乎很可笑,但是仔细想想我们正在使用的这些存储系统,其提供的功能就是如此。应用程序里管理的数据都是对象,但是,大多数存储系统不能直接存储对象。以MySQL为例进行说明。存取一个对象时,必须把对象转换成MySQL表中的行,还得编写SQL语句才能完成存取操作。是不是很难用?不仅难用,而且还必须用好。要想用好,需要学习和掌握其中的方法和技巧。
近年来,分布式存储在业内的发展非常迅速,每隔一段时间就会诞生一种新的数据库,不管功能如何,它们无一例外都会与MySQL这样的传统数据库进行性能测试对比,以彰显自己速度快、性能好。
不过,有句俗话:“一个人越炫耀什么,说明内心越缺少什么。”这句话也同样适用于技术圈。不断有新的存储系统刷新性能纪录,恰恰说明了现有的存储系统性能不尽如人意。经过良好优化的业务系统,其性能瓶颈一定是存储。从性能的角度来说,存储系统就是整个系统中最短的那块板,存储系统有多慢,整个系统就会有多慢。
存储与其他成熟的技术领域不同,后者基本上都是以一两种方案为主,比如,Java开发基本上是以Spring为主,再比如,开发中使用的Web容器,存放静态页面以Nginx为主,存放动态页面以Tomcat为主。但存储大不相同,目前已有的广泛应用于生产系统中的存储系统的种类非常多。
MySQL、Redis、Elasticsearch、HBase、Hive、MongoDB、CockroachDB和S3等,这些存储系统谁都替代不了谁,每一种都有其所擅长的地方和适用的场景,当然也有其突出的短板。因此,我们需要学习和掌握如何根据业务系统的特点选择合适的存储系统来构建我们的系统。
由于存储系统具有“难用、慢、杂”这几大特点,因此我们学习起来更需要注重方法。如何学习才能更为高效呢?为大家推荐10本书,从问题入手,从实践中寻找答案。
1
MySQL技术内幕:InnoDB存储引擎
(第2版)
作者:姜承尧
推荐语:国内外数据库专家联袂推荐,基于MySQL5.6,从存储引擎内核角度对InnoDB的核心实现和工作机制进行深入剖析。
2
Redis设计与实现
作者:黄健宏
推荐语:系统而全面地描述了 Redis 内部运行机制;图示丰富,描述清晰,并给出大量参考信息,是NoSQL数据库开发人员案头必备;包括大部分Redis单机特征,以及所有多机特性。
3
HBase原理与实践
作者:胡争、范欣欣
推荐语:这是一本深入介绍HBase系统的书籍,由HBase PMC成员与网易资深工程师倾力打造,多位技术专家联袂推荐。本书不仅用大量图片详细解剖HBase内核,还用案例展示了HBase的开发运维技巧,是一本不可能多得的高质量图书,值得每一位大数据开发运维人员放在案头深读。
4
ClickHouse原理解析与应用实战
作者:朱凯
推荐语:ClickHouse官方团队研发负责人及核心者作序推荐,ClickHouse核心贡献者亲自执笔,一本书帮你驾驭ClickHouse本书采用浅显易懂的语言+大量演示案例+大量示意图例的形式呈现,以求让读者在最短的时间内,以最舒服的方式,获得最核心的知识。
5
深入理解分布式事务
作者:肖宇、冰河
推荐语:本书的广度与深度兼备、理论与实战兼顾的分布式事务专著,它从基础知识、解决方案、原理分析、源码实现、工程实战5个维度对分布式事务做了全面、细致的讲解,试图解决你在实践中遇到的所有关于分布式事务的问题。
6
分布式数据库原理、架构与实践
作者:李海翔
推荐语:这是一部对分布式数据库的核心原理、架构设计以及经典分布式数据库的实现进行深入剖析的著作,融入了作者在腾讯、Oracle等企业20余年的数据库实践经验,以及数据库领域前沿的研究成果,得到了中国人民大学杜小勇教授等多位业界知名专家的高口碑和鼎力推荐。
7
电商存储系统实战
作者:李玥
推荐语:本书以电商应用场景为例,讲解实战过程中常会遇到的各种存储问题。通过这样的学习方式,用户既可以快速地解决实际问题,还能提升技术能力。全书共18章,分为设计篇、高速增长篇、海量数据篇和技术展望四篇。
8
高效使用Greenplum
入门、进阶与数据中台
作者:王春波
推荐语:这不仅是一本从原理到使用、从入门到进阶讲解Greenplum的著作,而且是一本指导企业用更省钱、更高效地方式使用Greenplum构建企业级数据仓库和数据中台的著作。
9
DBA攻坚指南
左手Oracle,右手MySQL
作者:叶桦 徐浩 张梦颖 应以峰
推荐语:本书是美创科技资深Oracle、MySQL技术专家呕心沥血之作,积作者多年的经验结晶和实践经验,也是目前市场上为数不多Oracle和MySQL相结合的数据库技术书籍。数据库领域资深技术专家的经验总结和最佳实践。由浅入深的解析典型案例的运维方法论。
10
精通LevelDB
作者:廖环宇,张仕华
推荐语:阿里、贝壳找房专家联合撰写,深入方法与关键代码层面,多注释与讲解 。本书系统剖析LevelDB的数据结构、使用、架构、公用基础类与主要模块实现,是掌握Bigtable数据库设计精髓的不二之选