网易首页 > 网易号 > 正文 申请入驻

字节面试官:你用过哪些数据库?我自信回答:MySQL!他:回去等通知吧

0
分享至

你是小阿巴,正在公司敲代码。

老板走过来说:小阿巴,给咱们网站加个商品搜索功能吧。

你拍拍胸脯:没问题,我直接用 MySQL 数据库的 LIKE 模糊查询实现搜索,1 小时上线~


结果上线后,用户点击搜索,卡了半天没反应,老板气得脸都绿了。

你急的汗流浃背,只能找到号称『后端之狗』的鱼皮求助:阿巴阿巴,俺用 MySQL 搞不定,咋办啊……

鱼皮:不是哥们,又不是只有 MySQL 这一个数据库。

下面我来带你认识 10 种不同类型的数据库,让你知道什么场景该用什么数据库。


点个收藏,我们开始~

⭐️ 推荐观看视频版,有动画更好理解:https://www.bilibili.com/video/BV1ChkjBsEzq

关系型数据库

首先是我们接触最多的、也是后端入门必学的 关系型数据库

在关系型数据库中,数据以 的形式进行组织和存储,每个表就像一个 Excel 表格,包含多个 和多个


比如你要做个学生管理系统,把学生信息存储到关系型数据库中,结构大概是这样的:

学号

学生姓名

所属班级号

1

小李

1

2

小鱼

2

3

小皮

3

上述学生表格中,每一行代表一个学生的信息,每一列代表学生的一个属性。


我们可以使用结构化查询语言 SQL 来对关系型数据库表的数据进行灵活地查询、选择、过滤等。


而关系型数据库最大的特点,就是表和表之间可以 存在关系。比如学生管理系统中还可以有班级表,结构如下:

班号

班级名称

1

快乐班

2

泰酷班

3

躺平班

如果我想知道某个学生所属的班级信息,只需要在查询时将学生表的 所属班级号 和班级表的 班号 进行关联,而不用把所有表格的列存储在一起,非常灵活。


通过 SQL 可以连接查询多张表:


得到下面的查询结果:

学号

学生姓名

所属班级号

班级名称

1

小李

1

快乐班

2

小鱼

2

泰酷班

3

小皮

3

躺平班

此外,关系型数据库遵循 ACID 原则(原子性、一致性、隔离性和持久性),通过 事务 机制可以保证多个操作同时进行时,数据的状态保持一致。


举个例子,A 给 B 转账,A 扣钱的同时 B 也会加钱,不会出现 A 扣了钱 B 却没收到钱的情况。


正因为关系型数据库既能灵活查询、又能准确写入,所以它几乎可以被应用在任何项目中。比如各类管理系统、数据分析系统、金融银行系统等。

比较主流的关系型数据库产品有:

  • MySQL:开源易学,后端开发必学的数据库

  • Oracle:人称 “甲方的数据库”,主要是大型企业和政府机构在用,功能强大但授权费用昂贵

  • PostgreSQL:开源界的天花板,功能最全面

  • SQL Server:微软出品,和 Windows 系统、.NET 生态集成度高

  • SQLite:整个数据库就是一个文件,不需要服务器,非常轻量。被广泛应用在手机 APP、浏览器中,你的手机里可能有几十个 SQLite。

对于大多数项目,用 MySQL 等关系型数据库来存储数据就足够了。但如果要存储的数据间没有复杂关系、或者需要极致的性能时,它并不是最佳选择。

你点点头:俺知道,就好比俺要写一篇文章,没必要非得把内容塞进 Excel 表格里,直接放到 Word 文档里会更方便编辑和阅读。


鱼皮:没错,这时就需要与关系型数据库互补的 非关系型数据库

非关系型数据库

非关系型数据库又叫 NoSQL(Not Only SQL),适合存储关系不强的、结构灵活的、需要快速访问的数据。

打个比方,关系型数据库像图书馆,书籍分类明确、摆放有序、借阅有规矩;非关系型数据库像你的书桌,怎么顺手怎么放,拿取方便最重要。


在实际项目开发中,最常用的非关系型数据库是 KV 数据库和文档数据库。

KV 键值数据库

KV 即 Key-Value,数据是以 键值对 的方式存储在数据库中的,可以理解为一个超大的 HashMap,数据库中存储的每个键都 唯一对应 一个值。


比如存储用户信息和热门商品信息,结构是这样的:

Key 键

Value 值

user:1001

{"name":"鱼皮", "age":25}

product:hot

["商品1", "商品2", "商品3"]

键和值都可以是任意类型的数据,包括字符串、数字、数组、JSON 对象等,非常灵活。


由于 KV 存储的结构简单清晰,我们能够很轻松地根据某个键查找出对应的值,就像查字典一样,读写数据的性能都非常高。


此外,KV 数据库的可扩展性很强。因为数据间不存在直接关联,我们可以把键值对分散到多台机器上存储,通过数据分片、负载均衡等策略来支持海量数据的高并发访问。


由于高性能和高可扩展性,KV 数据库被广泛应用于缓存、分布式会话、分布式锁、实时统计等场景。

最经典的 KV 数据库肯定是 Redis,它是开源的、基于内存的数据库,不仅支持丰富的数据类型和功能,还有持久化等重要特性,也是后端必学的技术。其他的常用 KV 数据库有 Memcached、Etcd、LevelDB、RocksDB 等。


文档数据库

文档数据库也属于非关系型数据库。顾名思义,它适用于存储和管理 半结构化的 文档数据,数据一般以 JSON(BSON)格式存储。


相比于关系型数据库中严格定义的表格行列,文档数据库的数据结构更像是一份份独立的文档,每个文档都可以包含不同类型和格式的数据,结构非常灵活。


比如存储博客文章,结构是这样的:

文档 ID

文档数据

1

{"_id": 1, "title": "文章标题1", "content": "这是文章1的内容"}

2

{"_id": 2, "title": "文章标题2", "author": "程序员鱼皮"}

你挠挠头:诶,文档 1 和文档 2 的字段都不一样啊,这也行?


鱼皮:没错,这就是文档数据库的灵活性。当我们要给某个文档新增一个字段时,不需要像关系型数据库那样先改表结构,直接加就完事了。


而且支持水平扩展,可以分散到多台服务器上存储,适用于内容管理系统、博客平台、电商商品详情页等场景。


推荐学习的文档数据库是 MongoDB,因为它存储的就是 JSON(BSON)格式数据,对前端同学很友好,入门难度也很低。


特定场景的数据库

虽然关系型和非关系型数据库已经能够满足大部分场景,但在一些特殊场景下,使用专门设计的数据库会更高效。就像你可以用菜刀砍树,但用斧子会更快更省力。

搜索引擎数据库

专门为搜索功能设计的数据库。它能存储和管理大量文本数据,提供快速、准确、灵活的全文检索功能。


你挠挠头:凭什么它能做到这些呢?

鱼皮:秘密在于它使用了 倒排索引 的方式存储数据。

以存储博客文档为例,关系型数据库的存储结构是:

文档 id

文档内容

1

感谢关注鱼皮

2

鱼皮是一名程序员

3

感谢关注编程导航

我们能够根据 id 来查找到对应的单篇文档,也可以通过搜索精确的关键词,来查找到多篇文档。

比如搜索 "鱼皮",能搜出文档 1、2。


但是,如果你搜索 "鱼皮程序员",是无法得到搜索结果的,因为没有任何一个文档的内容完全包含 "鱼皮程序员" 这个词。


而在搜索引擎数据库中,首先会将文档内容按照单词进行分割,也就是 分词。然后 建立倒排索引,也就是构建 单词到文档 id 的映射


有了上述的倒排索引,当用户搜索 "鱼皮程序员" 时,搜索引擎数据库会先对搜索词进行分词,得到 "鱼皮" 和 "程序员",然后根据这两个词汇就能找到文档 id 1 和 2 了。不用再一行一行遍历表内所有的数据,实现了更灵活、快速的搜索。


此外,搜索引擎数据库还支持 相关性排序,能够根据用户的搜索词对所有搜索结果进行打分,把最相关的文档排到最上面,就像谷哥度娘那样。


主流的搜索引擎数据库技术有 Elasticsearch、Apache Solr 等,建议只学习 Elasticsearch 就够了,它的社区最活跃、学习资料最丰富。

向量数据库

向量数据库是专门用于存储和处理 高维向量数据 的数据库,也是 AI 时代最火的数据库。

你好奇道:啥是向量?

鱼皮:简单来说,向量是一个数字数组,每个数字代表一个 特征 维度。


举个例子,在人脸识别系统中,我们需要通过人脸的特征来判断是否为同一个人。每张人脸图像都可以通过 AI 模型转换成一个向量,这个向量可能包含成百上千个数字,每个数字代表图像的一个 抽象 特征维度。


实际上,很难说清楚每个数字代表什么,但便于理解,你可以 想象 下标 0 代表鼻子大小,下标 1 代表眼睛距离等等,以此类推。


之后通过余弦相似度等算法来计算两个向量的相似度,就能判断出两张人脸是不是同一个人。


向量数据库能够高效存储这些多维向量数据、快速计算向量的相似度、并实现各种不同算法的相似性搜索。适用于人脸识别、推荐系统、语义搜索等场景。


在 AI 时代,可以用向量数据库给 AI 提供特定领域的知识库,大大提升回答的准确性。


主流的向量数据库技术有 Milvus、Pinecone 等,像 PostgreSQL 关系型数据库也通过插件支持存储向量类型的数据。


图数据库

图数据库是专门用于存储和处理 图结构数据 的数据库。

注意,这里的 “图” 可不是照片或图表,而是数学中的图论概念,由节点(Node)和边(Edge)构成的图形结构。


比如我们要存储一个社交网络的朋友关系,对应的图可能是由多个用户节点和好友关系边组成的。


在图数据库中,需要 2 个表格来存储。

1)节点信息表:

节点 id

节点名

1

鱼皮

2

阿巴

3

编程导航

2)边信息表:

边 id

边类型

起始节点

结束节点

1

好友

1

2

2

好友

2

3

通过存储这些节点和边的信息,图数据库就能快速查询和分析复杂的关系网络。比如查找 “朋友的朋友”、计算两个用户之间的最短路径、发现社交圈子等等。


因此,图数据库非常适合构建社交网络、推荐系统、知识图谱等。

比较主流的图数据库有 Neo4j、TigerGraph 等,都支持复杂的图算法和分布式扩展,能够通过并行计算加速图形处理。

时序数据库

时序数据库是专门用于高效存储和处理 时间序列 的数据库。

时间序列是指以时间作为主要维度的数据序列,也就是每个数据单元都带着 时间戳,按时间顺序排列。


举个例子,在服务器监控系统中,我们需要每分钟记录服务器的 CPU 使用率、内存使用率等指标,数据结构如下:

时间戳

设备ID

CPU使用率

内存使用率

2026-01-08 10:00

Server001

45%

60%

2026-01-08 10:01

Server001

48%

62%

2026-01-08 10:02

Server001

52%

65%

有了这些数据,我们就能够按照时间范围进行高效查询、做聚合分析(比如计算过去 1 小时的平均 CPU 使用率)、进行数据可视化展示。


因此,时序数据库非常适用于物联网设备监控、服务器性能监控、金融交易数据分析等场景。

主流的时序数据库技术有 InfluxDB、TimescaleDB 等,一般会配合 Grafana 监控看板一起使用,实现数据存储 + 快速可视化。你在运维团队看到的那些酷炫的实时监控大屏,背后就是时序数据库在支撑。


列存数据库

区别于传统的行式数据库,列存数据库 以列作为基本的存储单位,把每一列的数据存储在一起。

拿公司每天的收入来举个例子,传统的行式数据库是这么存储的:

日期

销售额

成本

利润

2026-01-01

500

600

-100

2026-01-02

280

450

-170

2026-01-03

290

480

-190

而在列存数据库中,底层大概是这么存储的,看起来像是对矩阵做了一次转置:

日期

2026-01-01

2026-01-02

2026-01-03

销售额

500

280

290

成本

600

450

480

利润

-100

-170

-190


如果我们要统计这 3 天公司的总利润,传统的行式数据库需要依次读取每一行的数据,然后再提取出利润这一列进行计算;而列存数据库直接读取利润这一列就行了,不用管其他列,大大提高了数据分析和聚合操作的效率。


而且从计算机底层来分析,把相同类型的数据在同一列中连续存储,可以实现更好的数据压缩效果、节约存储空间。


因此,列存数据库适用于报表生成、数据仓库、商业智能分析等场景。

主流的列存数据库技术有 ClickHouse、Apache HBase、Druid 等,都是大数据开发的必修课。

融合型数据库

前面我们讲了关系型和非关系型数据库,要么强调灵活查询、要么强调性能和扩展,各有侧重。

但有些数据库偏偏 “既要又要”,要把两者的优点融合到一起,这就是接下来要讲的融合型数据库。

NewSQL 数据库

NewSQL 是一类新兴的数据库,它融合了传统关系型和非关系型数据库的优点。既有传统 SQL 数据库的 ACID 特性和事务支持,又有 NoSQL 的水平扩展能力和高性能。支持标准 SQL 查询、分布式架构、自动容错和故障恢复,可以替代传统的分库分表方案,特别适用于大厂的高并发系统。


主流的 NewSQL 数据库有 TiDB、CockroachDB、Google Spanner 等。其中 TiDB 是国产之光,支持 HTAP(混合事务分析处理),而且完全兼容 MySQL 协议,迁移成本低;CockroachDB 人称 “蟑螂数据库”,因为它像蟑螂一样顽强,集群中一个节点挂了,其他节点依然能正常服务,打不死。


多模数据库

区别于前面所有存储单一数据模型的数据库,多模数据库能够直接在一个数据库里同时存储和处理 多种不同类型 的数据。比如关系型数据、文档数据、图形数据、键值对数据等等,非常灵活、省去了维护多个数据库的麻烦。


而且多模数据库还支持跨模型事务,能够更轻松地实现数据的一致性和完整性,不需要手动实现跨库事务、跨库数据同步这些复杂操作。


虽然听起来很厉害,但实际开发中很少用,因为样样通样样松,多模数据库的性能往往不如专注单一场景的数据库。

原生的多模数据库技术有 ArangoDB、OrientDB 等,它们从设计之初就是为多模式设计的。前面也提到,虽然 PostgreSQL 这样的老牌关系型数据库可以通过丰富的插件支持多种数据类型(比如 JSON 文档、向量、地理空间数据等),但它的核心始终是关系模型,多模支持算是锦上添花,不过这也体现了 PostgreSQL 的强大。


怎么选择数据库?

你一脸懵逼:阿巴阿巴,你讲了这么多数据库,俺头都大了,到底该选哪个?


鱼皮笑了笑:别慌,数据库选型其实没那么复杂。

优先选用 MySQL / PostgreSQL + Redis,能覆盖 90% 的项目需求。

有特定功能或优化需求时,再选择专业数据库。比如需要搜索功能了,再加 Elasticsearch;要做 AI 知识库了,再加向量数据库。

毕竟每多一个数据库,就多一份运维工作和故障风险。


你:学会了学废了!对了鱼皮,我还听说过数据湖、数据仓库,这些是啥啊?

鱼皮:简单来说,数据仓库是用来存储和分析大量结构化数据的;数据湖更像个大水池,什么数据都能往里扔,包括日志、图片、视频这些非结构化数据。它们更多是大数据架构层面的概念。


感兴趣的话,点个关注,后面专门出一期讲讲~


点击下方关注鱼皮,获取免费编程学习路线、简历模板、面试题解、AI 知识库、项目教程、交流群。

一些对大家有用的资源:
100+ 编程学习路线 / 实战项目 / 求职指导
100+ 简历模板
300+ 企业面试题库 mianshiya.com
500+ AI 资源大全
1 对 1 模拟面试
动画学算法教程

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
正式退出,孙颖莎王楚钦官宣决定,国乒名单曝光,刘国梁失望

正式退出,孙颖莎王楚钦官宣决定,国乒名单曝光,刘国梁失望

懂球社
2026-01-22 18:34:11
苹果正式官宣:1月24日,全面降价!

苹果正式官宣:1月24日,全面降价!

科技堡垒
2026-01-23 11:56:13
决赛预计首发:安圣再憋大招!U23国足2位置存悬念 谨防日本4猛将

决赛预计首发:安圣再憋大招!U23国足2位置存悬念 谨防日本4猛将

我爱英超
2026-01-23 06:33:30
曾荫权:曾千亿救市打爆索罗斯,卸任后却因几张机票,换来20个月牢饭?

曾荫权:曾千亿救市打爆索罗斯,卸任后却因几张机票,换来20个月牢饭?

寄史言志
2026-01-22 19:02:17
不许报复美国,美方话音刚落,欧盟作出决定,将逐步淘汰中国制造

不许报复美国,美方话音刚落,欧盟作出决定,将逐步淘汰中国制造

明天见灌装冰块
2026-01-23 03:31:46
央行:为保持银行体系流动性充裕,2026年1月23日,中国人民银行将以固定数量、利率招标、多重价位中标方式开展9000亿元MLF操作,期限为1年期

央行:为保持银行体系流动性充裕,2026年1月23日,中国人民银行将以固定数量、利率招标、多重价位中标方式开展9000亿元MLF操作,期限为1年期

每日经济新闻
2026-01-22 17:26:07
高盛,中信吃了个跌停,牛市股价暴跌24%,高盛和中信重仓被套

高盛,中信吃了个跌停,牛市股价暴跌24%,高盛和中信重仓被套

鹏哥投研
2026-01-23 09:45:18
终于理解为啥吕布从没斩杀有名大将,却被称为第一猛将!评论太精辟

终于理解为啥吕布从没斩杀有名大将,却被称为第一猛将!评论太精辟

热闹的河马
2024-10-08 16:25:19
马斯克在达沃斯预测:AI将在5年内超越全人类集体智慧,机器人数量将超过人类

马斯克在达沃斯预测:AI将在5年内超越全人类集体智慧,机器人数量将超过人类

环球网资讯
2026-01-23 11:10:23
报废拆解的新能源汽车,约有80%没了电池!小作坊拆解转卖利润几千上万元,“这行有规定,不太方便讲”,记者一线调查→

报废拆解的新能源汽车,约有80%没了电池!小作坊拆解转卖利润几千上万元,“这行有规定,不太方便讲”,记者一线调查→

每日经济新闻
2026-01-21 17:27:02
后背发凉!一月入3万36岁女高管,失业8个月加离婚,如今送外卖了

后背发凉!一月入3万36岁女高管,失业8个月加离婚,如今送外卖了

火山詩话
2026-01-02 19:14:41
第一个捐款的明星出现了!苗圃现身嫣然医院捐款,更多名人发声了

第一个捐款的明星出现了!苗圃现身嫣然医院捐款,更多名人发声了

萌神木木
2026-01-21 17:18:03
34 岁港商赴京认亲,生父烈士继父元帅,母亲瞒 33 年遗书泣血

34 岁港商赴京认亲,生父烈士继父元帅,母亲瞒 33 年遗书泣血

唠叨说历史
2026-01-22 18:10:34
“老年斑”的罪魁祸首被发现,45岁后尽量少去碰,老了也能不长斑

“老年斑”的罪魁祸首被发现,45岁后尽量少去碰,老了也能不长斑

垚垚分享健康
2026-01-23 09:48:38
中国人寿HR讥讽本科求职者不配有双休,公司该学历员工达7.17万人

中国人寿HR讥讽本科求职者不配有双休,公司该学历员工达7.17万人

商业透镜
2026-01-22 15:55:59
国家下狠手了!体制内大地震,少爷、公主们的“天”,要塌了

国家下狠手了!体制内大地震,少爷、公主们的“天”,要塌了

霹雳炮
2026-01-19 22:24:13
唐伯虎真迹现身美国,世上仅此一件,网友:让当代书家汗颜

唐伯虎真迹现身美国,世上仅此一件,网友:让当代书家汗颜

幸福娃3790
2025-12-04 11:10:09
央视紧急曝光!商户为降成本,往红薯中投毒,已流窜至全国多地

央视紧急曝光!商户为降成本,往红薯中投毒,已流窜至全国多地

阿器谈史
2026-01-22 17:43:06
重要调整!央视直播U23亚洲杯决赛有变,日本核心报销缺席比赛

重要调整!央视直播U23亚洲杯决赛有变,日本核心报销缺席比赛

皮皮观天下
2026-01-23 09:52:31
1996年, 施瓦辛格在家中无事,和35岁200斤女佣发生不当关系

1996年, 施瓦辛格在家中无事,和35岁200斤女佣发生不当关系

南权先生
2026-01-20 15:49:53
2026-01-23 19:43:00
程序员鱼皮 incentive-icons
程序员鱼皮
一手科技资讯和编程干货
7文章数 0关注度
往期回顾 全部

科技要闻

TikTok守住了算法"灵魂" 更握紧了"钱袋子"

头条要闻

阿姨和未离婚男子同居四十年 晚年只求分居被索要25万

头条要闻

阿姨和未离婚男子同居四十年 晚年只求分居被索要25万

体育要闻

跑个步而已,他们在燃什么?

娱乐要闻

演员孙涛澄清闫学晶言论 落泪维护妻子

财经要闻

2026年,消费没有新故事?

汽车要闻

主打家庭大六座 奕境首款SUV将北京车展亮相

态度原创

亲子
教育
时尚
旅游
军事航空

亲子要闻

“都吃成碳水脸了!”三男孩宝妈,做了一桌子素菜却嫌孩子吃的多

教育要闻

重磅!绵阳外国语学校校长、副校长调整

告别臃肿!这种简约的高级穿法,别拒绝

旅游要闻

20公里80块,丽江观光火车把自己送停了

军事要闻

美军首艘“高超导弹战舰”出海测试

无障碍浏览 进入关怀版