带你读《2022技术人的百宝黑皮书》——数据库存储选型经验总结(1)

简介: 带你读《2022技术人的百宝黑皮书》——数据库存储选型经验总结(1)

数据库存储选型经验总结

image.png作者:马刺

image.png出品:大淘宝技术

 

 

工作中总是遇到数据存储相关的Bug工单,新需求开发设计中也多多少少会有数据模型设计和存储相关的问题。经过几次存储方案设计选型和讨论后发现需要有更全面的思考框架。

日常开发中常用的存储方案选型很多都是“拿来主义”的,凭借着经验、习惯选用,但对它们的细节特性或约束少有研究。

除了手边会用的存储方案,也应该关注市面上更合适的存储方案。一定的技术预研和储备能够帮助未来更好的技术方案设计。

故写了这篇文章,抛出我的总结和思考,希望日后可以将一些更先进 (合适) 的技术引入业务开发中,助力业务发展。

 

存储选型的考虑要素

 

存储选型的目的还是为了我们的使用场景和用户服务,因此在选型前需要回答自己一些 业务指标 & 技术指标 方面的问题,以便于我们清楚存储选型的应用环境。

 

  1. 用户量:用户量预估多少?几百几万还是几亿?
  2. 数据量:数据量预估多少?日均增量能有多少?
  3. 读写偏好:数据是读多一些还是写多一些?
  4. 数据场景:强事务型还是分析型需求?
  5. 运行性能要求:并发量是多少?高峰、平均、低谷分别预估是多少?

 

存储引擎分类及特性

 

数据库的分类方式非常多样,因参考维度不同而存在较大差异,下面是常见的一些分类。

 

 

 

数据库类型

常见数据库

关系型

MySQL、Oracle、DB2、SQLServer 等。

非关系型

Hbase、Redis、MongodDB 等。

行式存储

MySQL、Oracle、DB2、SQLServer 等。

列式存储

Hbase、ClickHouse 等。

分布式存储

Cassandra、Hbase、MongodDB 等。

键值存储

Memcached、Redis、MemcacheDB 等。

图形存储

Neo4J、TigerGraph 等。

文档存储

MongoDB、CouchDB 等。

 

 

先拿我们最熟悉的关系数据库来说,它的优点非常多,我们选用关系数据库的理由可简单概括为以下几点:

 

  1. 容易理解

可由二维表结构来逻辑表达,相对网状、层次等其他模型更加容易被理解。严格遵循数据格式与长度规范,数据以行为单位,一行数据表示一个实体信息,每一行数据的属性都是相同的。

  1. 操作方便

通用的 SQL 语言使得操作关系型数据库非常方便,支持 join 等复杂查询,Sql + 二维关系是关系型数据库最无可比拟的优点,这种易用性非常贴近开发者。

  1. 事务特性

支持 ACID 特性,可以维护数据之间的一致性,这是使用关系数据库非常重要的一个理由,例如同银行转账,张三转给李四 100 块钱,张三扣 100 元,李四加 100 元,而且必须同时成功或者同时失败,否则就会造成用户的资损。

  1. 数据稳定

数据持久化到磁盘,没有丢失数据风险。

  1. 服务稳定

最常用的关系型数据库产品 MySql、Oracle 服务器性能卓越,服务稳定,通常很少出现宕机异常。

 

带你读《2022技术人的百宝黑皮书》——数据库存储选型经验总结(2)https://developer.aliyun.com/article/1340015?groupCode=taobaotech

相关文章
|
3天前
|
存储 调度 数据库
存储物理页属性的PFN数据库
存储物理页属性的PFN数据库
|
2天前
|
SQL 缓存 负载均衡
数据库设计优化:性能提升与扩展性的技术探讨
【6月更文挑战第28天】数据库设计优化聚焦性能与扩展性:SQL优化、索引策略、缓存利用及分库分表、集群技术,旨在平衡处理速度与系统稳定性。通过智能SQL、复合索引、查询缓存减少数据库压力,垂直/水平拆分与集群实现数据分布式处理,提升并发能力。
|
6天前
|
Java 数据库连接 API
后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
13 3
|
6天前
|
监控 Java 数据库连接
Java开发者必读:连接池技术如何提升数据库连接效率
【6月更文挑战第24天】Java开发中,面对高并发的数据库访问,连接池技术成为性能优化的关键。它预先创建连接池,减少频繁的连接创建/关闭,提升响应速度,节省资源,并增强系统稳定性。例如,HikariCP连接池通过配置实现DB连接管理,简化代码并提升应用性能。
|
3天前
|
存储 SQL 运维
OLAP数据库选型指南:Doris与ClickHouse的深入对比与分析
OLAP数据库选型指南:Doris与ClickHouse的深入对比与分析
|
3天前
|
编译器 API 数据库
技术好文共享:(xxxx)十一:SQLite3的db数据库解密(三)数据库在线备份
技术好文共享:(xxxx)十一:SQLite3的db数据库解密(三)数据库在线备份
|
3天前
|
存储 NoSQL 关系型数据库
技术心得:常用数据库有哪些
技术心得:常用数据库有哪些
|
3天前
|
SQL 缓存 Java
必知的技术知识:hsql数据库使用详解(入门)及快速使用
必知的技术知识:hsql数据库使用详解(入门)及快速使用
|
3天前
|
存储 关系型数据库 MySQL
技术笔记:MySQL数据库优化详解(收藏)
技术笔记:MySQL数据库优化详解(收藏)
|
3天前
|
SQL 关系型数据库 MySQL
技术笔记:python连接mysql数据库
技术笔记:python连接mysql数据库