MYSQL-数据库介绍

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。

MySQL(本章节)

PostgreSQL

MongoDB

Redis

Etcd

数据库的第一篇文章首先就来介绍下常见的数据库有哪些,我们只会讲解上面哪几个数据库。

1. 关系型数据库 (RDBMS)

这是最传统和主流的类型,使用 SQL 作为查询语言,强调数据的 ACID 特性和严格的一致性。

  • MySQL : 世界上最流行的开源关系数据库,以其易用性、可靠性和强大的社区生态而著称,是众多Web应用的首选。

  • PostgreSQL: 功能最强大的开源关系数据库,被誉为"最先进的开源关系数据库"。支持高级数据类型(如JSON、XML、数组)、窗口函数、事务完整性等,并具有高度可扩展性。

  • Oracle Database: 老牌商业数据库巨头,功能极其强大和稳定,常用于大型企业、金融、电信等核心交易系统。价格昂贵。

  • Microsoft SQL Server: 微软旗下的主流关系型数据库,与 .NET 生态系统和 Windows Server 集成度极高,在中大型企业应用中非常流行。

  • SQLite: 一款轻量级的、嵌入式的数据库,整个数据库就是一个文件。无需单独的服务器进程,广泛应用于移动应用(如Android、iOS)、桌面软件和小型网站。

  • MariaDB: 由 MySQL 原始开发者开发,作为 MySQL 的一个分支,完全兼容 MySQL,但旨在保持开源自由并加入了一些新特性。是许多Linux发行版的默认选择。

2. NoSQL 数据库

为了解决关系型数据库在大数据量、高并发、灵活 schema 方面的挑战而诞生。

a. 文档型数据库 (Document Store)

  • MongoDB: 最流行的文档数据库,使用类JSON的BSON格式存储数据,模式灵活,适合快速迭代开发。查询功能强大,支持索引、聚合等。

  • Couchbase: 一个分布式的文档数据库,融合了缓存(如Redis)和文档存储的特性,性能非常高,主要用于需要低延迟读写的场景。

  • CouchDB: 一个完全拥抱Web的数据库,使用JSON存储数据,JavaScript作为查询语言,支持强大的数据复制和同步功能。

b. 键值数据库 (Key-Value Store)

  • Redis : 一个内存中 的键值数据结构存储。它支持丰富的值类型(字符串、列表、哈希、集合等),提供极致性能 (微秒级读写)。主要用途包括缓存、会话存储、消息队列、排行榜等。它也可配置数据持久化。

  • Amazon DynamoDB: AWS 提供的全托管的 NoSQL 键/值和文档数据库,以低延迟和无限扩展能力著称。

c. 列式数据库 (Column-Family Store)

非常适合数据分析、数据仓库和BI(商业智能) 场景,因为它可以高效地读取和聚合大量数据中的特定列。

  • Apache Cassandra : 一个高度可扩展、分布式的列存储数据库,以其无单点故障的架构和极高的写入吞吐量而闻名。

  • Apache HBase: 构建在 Hadoop HDFS 之上的列式数据库,为Hadoop生态系统提供随机、实时读写访问大数据的能⼒。

  • ClickHouse : 一个开源的联机分析处理(OLAP)列式数据库,以其惊人的查询速度 而著称,主要用于实时分析。

d. 搜索引擎数据库 (Search Engine)

专为全文搜索 而优化,核心功能是索引和快速检索非结构化的文本数据。

  • Elasticsearch: 当前最流行的分布式搜索引擎。它不仅提供强大的全文搜索能力,还常被用作日志处理、分析和复杂聚合的工具。

  • Apache Solr: 基于 Apache Lucene 的另一个企业级搜索平台,历史悠久,功能丰富。

e. 图数据库 (Graph Database)

专门用于存储和查询关系。它将数据存储为节点、边和属性,能高效处理复杂的关系网络。

  • Neo4j: 是最知名的主流图数据库。适用于社交网络、欺诈检测、推荐系统、知识图谱等场景。

  • JanusGraph: 一个可扩展的开源图数据库,通常与 Apache Cassandra、HBase 等存储后端配合使用。

3. 云原生数据库 & 数据仓库

由云厂商提供,通常是托管服务,省去了运维的麻烦,并深度融合了云的特性。

  • Amazon Aurora: AWS 提供的关系型数据库,宣称具有开源数据库的简单性和成本效益,但提供了高端商业数据库的性能和可用性。

  • Google BigQuery : 谷歌提供的全托管、无服务器(Serverless)的企业级数据仓库,支持超大规模数据的极速SQL查询

  • Snowflake : 一个构建在云平台之上的数据云平台,以其独特的存储与计算分离 架构而闻名。

  • Microsoft Azure Cosmos DB: Azure 提供的全球分布式多模型数据库服务,支持键值、文档、图等多种数据模型。

4. 时序数据库 (Time-Series Database)

专门为处理时间序列数据(如监控指标、传感器数据)而优化。

  • InfluxDB: 最流行的开源时序数据库,专为处理高写入和查询负载而设计。

  • Prometheus: 一个开源的系统监控和警报工具包,其底层就是时序数据库。它是云原生领域的事实监控标准。

  • TimescaleDB: 一个构建在 PostgreSQL 之上的时序数据库,完全支持 SQL。

5. 一致性协调 & 配置存储 (Consensus & Configuration Store)

这类数据库的核心是强一致性高可用性,通常用于分布式系统中的服务发现、配置共享和元数据存储。

  • Etcd : 一个高可用的分布式键值存储 ,使用 Raft 共识算法 来保证数据一致性。它是 Kubernetes 等容器编排系统的默认后端存储,用于保存所有集群状态和数据。

  • Apache ZooKeeper: 一个为分布式应用提供高性能协调服务的软件,是 Hadoop 和 HBase 的重要组件。

总结与选型建议

选择哪个数据库完全取决于您的业务场景和需求

  • 传统Web应用、交易系统MySQLPostgreSQL

  • 缓存、会话存储、高速读写Redis

  • 配置管理、服务发现(如K8s)Etcd

  • 灵活的文档存储、内容管理MongoDB

  • 全文搜索、日志分析Elasticsearch

  • 大数据分析、数据仓库ClickHouseSnowflakeBigQuery

  • 处理高度关联的数据Neo4j

  • 物联网、监控指标InfluxDBPrometheus

  • 追求极致扩展性和无单点故障Apache Cassandra

  • 上云,不想管理数据库 :对应云厂商的托管服务,如 AuroraCosmos DBDynamoDB

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

相关推荐
Garc3 小时前
linux Debian 12 安装 Docker(手动)
linux·docker·debian
苦逼IT运维3 小时前
Kubernetes 双层 Nginx 容器环境下的 CORS 问题及解决方案(极端情况)
运维·nginx·容器·kubernetes·jenkins·运维开发·ci
绝无仅有3 小时前
某游戏大厂 Java 面试题深度解析(四)
后端·mysql·架构
kaoa0004 小时前
Linux入门攻坚——52、drbd - Distribute Replicated Block Device,分布式复制块设备-1
linux·运维·服务器
Kay_Liang4 小时前
【Hive 踩坑实录】从元数据库初始化到 HiveServer2 启动的全流程问题解决
大数据·linux·hive·hadoop·笔记·mysql·ubuntu
林九生4 小时前
【Debian】离线 Debian 系统如何正确设置东八区(Asia/Shanghai)时间
运维·debian
NiKo_W4 小时前
Linux Socket网络编程基础
linux·服务器·网络
sibylyue4 小时前
Spring编程式事务和声明式事务
java·数据库·mysql
啊略略wxx4 小时前
嵌入式Linux面试题目
linux·运维·服务器