左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家,骨灰级程序员
立即订阅
40357 人已学习
课程目录
已完结 108 讲
0/6登录后,你可以任选6讲全文学习。
开篇词 | 洞悉技术的本质,享受科技的乐趣
免费
01 | 程序员如何用技术变现(上)
02 | 程序员如何用技术变现(下)
03 | Equifax信息泄露始末
04 | 从Equifax信息泄露看数据安全
05 | 何为技术领导力?
06 | 如何才能拥有技术领导力?
07 | 推荐阅读:每个程序员都该知道的知识
08 | Go语言,Docker和新技术
09 | 答疑解惑:渴望、热情和选择
10 | 如何成为一个大家愿意追随的Leader?
11 | 程序中的错误处理:错误返回码和异常捕捉
12 | 程序中的错误处理:异步编程以及我的最佳实践
13 | 魔数 0x5f3759df
14 | 推荐阅读:机器学习101
15 | 时间管理:同扭曲时间的事儿抗争
16 | 时间管理:如何利用好自己的时间?
17 | 故障处理最佳实践:应对故障
18 | 故障处理最佳实践:故障改进
19 | 答疑解惑:我们应该能够识别的表象和本质
20 | Git协同工作流,你该怎么选?
21 | 分布式系统架构的冰与火
22 | 从亚马逊的实践,谈分布式系统的难点
23 | 分布式系统的技术栈
24 | 分布式系统关键技术:全栈监控
25 | 分布式系统关键技术:服务调度
26 | 分布式系统关键技术:流量与数据调度
27 | 洞悉PaaS平台的本质
28 | 推荐阅读:分布式系统架构经典资料
29 | 推荐阅读:分布式数据调度相关论文
30 | 编程范式游记(1)- 起源
31 | 编程范式游记(2)- 泛型编程
32 | 编程范式游记(3) - 类型系统和泛型的本质
33 | 编程范式游记(4)- 函数式编程
34 | 编程范式游记(5)- 修饰器模式
35 | 编程范式游记(6)- 面向对象编程
36 | 编程范式游记(7)- 基于原型的编程范式
37 | 编程范式游记(8)- Go 语言的委托模式
38 | 编程范式游记(9)- 编程的本质
39 | 编程范式游记(10)- 逻辑编程范式
40 | 编程范式游记(11)- 程序世界里的编程范式
41 | 弹力设计篇之“认识故障和弹力设计”
42 | 弹力设计篇之“隔离设计”
43 | 弹力设计篇之“异步通讯设计”
44 | 弹力设计篇之“幂等性设计”
45 | 弹力设计篇之“服务的状态”
46 | 弹力设计篇之“补偿事务”
47 | 弹力设计篇之“重试设计”
48 | 弹力设计篇之“熔断设计”
49 | 弹力设计篇之“限流设计”
50 | 弹力设计篇之“降级设计”
51 | 弹力设计篇之“弹力设计总结”
52 | 管理设计篇之“分布式锁”
53 | 管理设计篇之“配置中心”
54 | 管理设计篇之“边车模式”
55 | 管理设计篇之“服务网格”
56 | 管理设计篇之“网关模式”
57 | 管理设计篇之“部署升级策略”
58 | 性能设计篇之“缓存”
59 | 性能设计篇之“异步处理”
60 | 性能设计篇之“数据库扩展”
61 | 性能设计篇之“秒杀”
62 | 性能设计篇之“边缘计算”
63 | 区块链技术的本质
64 | 区块链技术细节:哈希算法
65 | 区块链技术细节:加密和挖矿
66 | 区块链技术细节:去中心化的共识机制
67 | 区块链技术细节:智能合约
68 | 区块链技术 - 传统金融和虚拟货币
69 | 程序员练级攻略:开篇词
70 | 程序员练级攻略:零基础启蒙
71 | 程序员练级攻略:正式入门
72 | 程序员练级攻略:程序员修养
73 | 程序员练级攻略:编程语言
74 | 程序员练级攻略:理论学科
75 | 程序员练级攻略:系统知识
76 | 程序员练级攻略:软件设计
77 | 程序员练级攻略:Linux系统、内存和网络
78 | 程序员练级攻略:异步I/O模型和Lock-Free编程
79 | 程序员练级攻略:Java底层知识
80 | 程序员练级攻略:数据库
81 | 程序员练级攻略:分布式架构入门
82 | 程序员练级攻略:分布式架构经典图书和论文
83 | 程序员练级攻略:分布式架构工程设计
84 | 程序员练级攻略:微服务
85 | 程序员练级攻略:容器化和自动化运维
86 | 程序员练级攻略:机器学习和人工智能
87 | 程序员练级攻略:前端基础和底层原理
88 | 程序员练级攻略:前端性能优化和框架
89 | 程序员练级攻略:UI/UX设计
90 | 程序员练级攻略:技术资源集散地
91 | 程序员面试攻略:面试前的准备
92 | 程序员面试攻略:面试中的技巧
93 | 程序员面试攻略:面试风格
94 | 程序员面试攻略:实力才是王中王
95 | 高效学习:端正学习态度
96 | 高效学习:源头、原理和知识地图
97 | 高效学习:深度,归纳和坚持实践
98 | 高效学习:如何学习和阅读代码
99 | 高效学习:面对枯燥和量大的知识
左耳听风
登录|注册

80 | 程序员练级攻略:数据库

陈皓 2018-07-05
对于数据库方向,重点就是两种数据库,一种是以 SQL 为代表的关系型数据库,另一种是以非 SQL 为代表的 NoSQL 数据库。关系型数据库主要有三个:Oracle、MySQL 和 Postgres。
在这里,我们只讨论越来越主流的 MySQL 数据库。首先,我们要了解数据库的一些实现原理和内存的一些细节,然后我们要知道数据的高可用和数据复制这些比较重要的话题,了解一下关系型数据库的一些实践和难点。然后,我们会进入到 NoSQL 数据库的学习。
NoSQL 数据库千奇百怪,其主要是解决了关系型数据库中的各种问题。第一个大问题就是数据的 Schema 非常多,用关系型数据库来表示不同的 Data Schema 是非常笨拙的,所以要有不同的数据库(如时序型、键值对型、搜索型、文档型、图结构型等)。另一个大问题是,关系型数据库的 ACID 是一件很讨厌的事,这极大地影响了数据库的性能和扩展性,所以 NoSQL 在这上面做了相应的妥协以解决大规模伸缩的问题。
对于一个程序员,你可能觉得数据库的事都是 DBA 的事,然而我想告诉你你错了,这些事才真正是程序员的事。因为程序是需要和数据打交道的,所以程序员或架构师不仅需要设计数据模型,还要保证整体系统的稳定性和可用性,数据是整个系统中关键中的关键。所以,作为一个架构师或程序员,你必须了解最重要的数据存储——数据库。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《左耳听风》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(27)

  • abcd
    链接的质量很高,但读者更想看耗子的理解和总结吧,希望多点描述性文字。

    作者回复: 在高手篇开篇描述中,我有如下的描述:


    我假设你在前面已经打下了非常扎实的基础,但是要成为一个高手,基础知识只是一个地基,你还需要很多更为具体的技术。对我来说,就是看各种各样的文章、手册、论文、分享…… 其实,学习到一定程度,就是要从书本中走出去,到社区里和大家一起学习,而且还需要自己找食吃了。【所以,对于这里面的文章,有很多都是在罗列各种文章和资源,只是为你梳理信息源,而不是喂你吃饭】。

    老实说,我已经为你梳理并过滤掉了很多的信息,这里只留下了 30% 我觉得最经济也最有价值的信息。虽然对于不同定位和不同需求的人还可以再对这些信息进行删减,但是觉得我这么一做就会对其它人不公平了。【所以,这也是我觉得最小数量集的信息和资源吧。你也可以把我这里的东西当成一个索引来对待】。

    2018-07-05
    22
  • 少年姜太公
    耗子叔,除了阅读书籍、博客和论文,有没有开源代码阅读经验分享。我的体会是阅读优秀开源代码就好比阅读经典文学作品,从中学习编程风格,设计思想以提高自身代码编写质量,偶尔还能把某些开源项目的代码片段、编写思路应用到自己代码中。求耗子叔分享一下阅读开源项目和提高编程水平的经验
    2018-07-07
    9
  • yanfan_software
    会用数据库并不代表就能设计好数据库,设计数据库与业务关联,需要了解用户需求和业务联系,这篇文章主要是介绍各个数据库的而非设计,但也没提太多底层,数据库优化,希望耗子叔可以抽空给讲讲这些。
    2018-07-05
    9
  • 刘強
    资料看多了,我对高手有了不同的理解。我觉得真正的高手是有自己的想法,自己的个性,独特的思维,解决问题的方式。看书再多,都理解了,都掌握了,顶多也不过是嚼别人嚼过的东西。这样的人貌似比大多数人强,其实他只不过是比别人看的多而已。有自己的思考,有自己独特的思想,有自己的输出,进而影响到别人,这才叫高手。我认为黑客才是真正的高手。这里的黑客是黑客与画家里面的定义。
    2018-07-07
    7
  • 杨书清
    感觉对普通程序猿来说数据库的建模和设计也很重要,有这方面的资料推荐么?
    2018-07-05
    7
  • 无风
    这一系列看下,真的很难想象皓哥是如何做到如此广面的知识积累

    作者回复: 我至少看了3倍于这些资料的量,才给出这些东西。这主要是兴趣和坚持

    2018-07-05
    5
  • songyy
    我最近在读 《designing data intensive application》其中深入浅出地比较了数据库的基本算法,解决数据方面问题的模式 感觉内容很棒
    2018-07-10
    4
  • 1 Player
    皓叔,有些东西学习过后,一段时间不用就会忘了。怎么解决这种问题呢。
    2018-07-05
    4
  • 高宇
    读者交流群申请表提交了没有回复,也不知道具体什么情况
    2018-07-06
    3
  • 刘-阿-伟
    我报一下坐标,深圳南山四年Java,老师程序员练级攻略我95%都不会,是不是我太菜了!
    2018-07-05
    3
  • 木 易
    大数据方面的会写一篇吗,hadoop,spark等
    2018-08-11
    1
  • Geek_217683
    耗子哥,能不能谈谈你对编辑器选择的看法,Vim,Emacs,是否还需要?
    2018-07-06
    1
  • 50infivedays
    怎么加读者群呀 我关注公众号也回复了公众号 还是不行
    2018-07-05
    1
  • zzz
    耗子叔,请教一个问题啊,go 能开发网站和写爬虫吗?我个人初步判断是,可以做网站,因为有web 框架,也可以写爬虫,因为能解析HTML 。求解~
    2018-07-05
    1
  • edisonhuang
    本文作为数据库相关资源的集散地,补足程序员对于数据存储模块的不足,感谢耗子哥的分享
    2019-08-19
  • weilai
    https://downloads.mysql.com/docs/refman-8.0-en.pdf
    2019-03-18
  • godtrue
    优质知识集散地
    2019-01-09
  • caohuan
    回看 自己做的项目,都是应用层上的 增删改查 以及 优化的功能,一旦涉及到 底层一点的知识,完全懵逼,所以也一直徘徊在 功能开发的码农层次,看到 耗子哥 列出的一大串资源,知道自己应该 要再次入门,甩掉身上的赘肉,从用到的MySql开始。
    2018-10-26
  • 张飞洪
    关系型数据库主要有三个:Oracle、MySQL 和 Pg?请问耗子叔,那微软的SQL Serever为什么没有罗列在内?SQL Server性能比Mysql不出名还是比较差?多指教,谢谢!
    2018-09-29
  • luwei
    不知道耗子叔以后会不会出一篇有关数据库和内存数据同步问题的文章?比如某个积分变换,先更新的内存数据,然后更新数据库的值,但更新数据库的时候写失败了怎么办?
    2018-09-08
收起评论
27
返回
顶部