我们常用的存储系统种类非常多,有单机的也有分布式的,有的是数据库,有的是文件系统,还有介于二者之间的。无论是哪种存储系统(比如,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数据库设计精髓的不二之选。

这些经典图书正在每满100减50

扫码发现更多好书

刷刷视频

存储系统又慢又杂太难用?我们推荐这几本书帮你解决问题相关推荐

  1. 编译器的优化真是太难了!

    一个编译器的好坏,主要是看这个编译器优化的效果是否良好,但曾有一位倍受编译器困扰的人曾说过:"优化设计是科学,但应用的顺序是艺术." 原文链接:https://faultlore. ...

  2. 机器学习与算法面试太难?

    机器学习与算法面试太难? 来源: https://mp.weixin.qq.com/s/GrkCvU2Ia_mEaQmiffLotQ 作者:石晓文 八月参加了一些提前批的面试,包括阿里.百度.头条.贝 ...

  3. 刚进入大学觉得计算机课很难,高校代码条幅迎新生,00后表示刚开学就感受到秃头压力!程序员太难了...

    原标题:高校代码条幅迎新生,00后表示刚开学就感受到秃头压力!程序员太难了 近日,内蒙古师范大学计算机学院为迎接新生挂出了与专业相关的代码创意条幅,学长们表示用结合专业知识的创意条幅,是希望新生能更快 ...

  4. 这些算法工程师,他们真的是太难了!

    现在的算法工程师真的是太难了! 要让AI会看人眼都分辨不清的医疗影像 数据又不够,还得用前沿技术 好不容易学会看片,还要让AI会分析病理 赋予AI诊断疾病的使命 然后 几十种模型,N次计算 只给一张显 ...

  5. 清华大一Python作业太难上热榜!只上3节课,手撸AI算法,网友:离本科毕设只差一篇万字论文...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 太难了! ...

  6. 13个月才跑通GitHub模型,机器学习科研入门太难了吧

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 金磊 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI & ...

  7. 同济大学某计算机博士感叹:找工作太难,连简历关都过不去!

    一个同济大学的计算机博士,学历和专业都不错,找工作应该是手到擒来,但他却感叹"找工作太难了",这是为什么呢? 看看楼主列出来的公司回馈,许多公司一看他的简历就否了,而那些接纳楼主的 ...

  8. GAN:「太难的部分我就不生成了,在下告退」

    选自 arXiv 作者:David Bau, Jun-Yan Zhu等 机器之心编译 参与:Panda W 生成对抗网络(GAN)现在已经能合成极具真实感的图像了,但 MIT.IBM 和香港中文大学的 ...

  9. AI可以在游戏里称霸,但是解决现实问题太难了

    来源:36氪 据<大西洋月刊>报道,直到最近,那些能在各类游戏中击败人类冠军的机器,解决现实问题太难了. 1997年,为了在国际象棋中击败象棋大师加里·卡斯帕罗夫(Garry Kaspar ...

最新文章

  1. 新型冠状病毒全球实时跟踪地图,多国研发疫苗,在中国或致8042例感染,爆发峰值预计2月中上旬 | 最新nCoV研究大汇总...
  2. python数学计算例子_Python OpenCV实例:直方图计算(数学公式简单实现)
  3. classification_report进阶:针对top-k的结果计算precision@k、recall@k、f1-score@k
  4. centos7升级自带的php5.4版本到php5.6
  5. java基础(二) 自增自减与贪心规则
  6. Linux shutdown指令
  7. 页面加载完后立刻执行JS的两种方法
  8. POJ 1273 (基础最大流) Drainage Ditches
  9. python response.json()报错_解决Django响应JsonResponse返回json格式数据报错问题
  10. 【HNOI2019】白兔之舞【组合数学】【矩阵快速幂】【单位根反演】【Chirp Z-Transform】【原根】【MTT】
  11. Linux 统计文件行数,字节数。
  12. YidaCMS网站管理系统源码V1.8.2
  13. java中 CopyOnWriteArrayList 的使用
  14. STM32L051低功耗STOP模式下RTC唤醒
  15. 【转载】CMMI与敏捷开发模式比较
  16. ps怎么撤销参考线_干货技巧 | Photoshop10大奇技淫巧(肯定有你不知道的!)
  17. Logistic Regression - IBM 员工离职预测
  18. 浅谈 Unity、iOS、Android 闭包的使用方法
  19. 【龙印】把龙芯1c的pwm用作定时器并产生中断
  20. 使用IBM InfoSphere Guardium监视和审计IBM DB2 for i数据库活动

热门文章

  1. Arduino笔记-Arduino UNO与WeMos D1串口通信(数据交互)
  2. 软考系统架构师笔记-最后知识点总结(四)
  3. Java方法的反射(对反射的进一步认识)
  4. Qt文档阅读笔记-QUdpSocket基本表述及简单实现
  5. C++ opengl 复合运动
  6. Qt5.7+Opencv2.4.9人脸识别(五)人脸识别
  7. 全球首个由AI鉴定保驾护航的B2B奢侈品潮品交易平台图灵云仓上线
  8. linux生成固定大小的文件夹的实现
  9. shell调用函数并获取函数返回值
  10. 数据结构之串:基本概念