为什么数据库选型和找对象一样重要

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介:

为什么数据库选型和找对象一样重要

一、找对象

正常路径:

  • 知己 -> 缘分出现 -> 恋爱[知彼] -> 结婚 -> 2个家庭关系结合(七大姑八大姨) -> 生娃 -> 带娃 -> 七年之痒 -> 愉快的共度一生

错误后果:

  • 1、家庭不和睦
  • 2、影响小孩成长
  • 3、离婚

    • 生无可恋
    • 财产分割
    • [娃]的成长、抚养问题等
    • 家庭关系处理
  • 4、再婚

二、数据库选型

正常路径:

  • 评估 -> [技术磨合] -> 研发 -> 上线 -> 迭代维护期

错误后果:

  • 1、研发、维护、软件、硬件成本增加,

    • 性能问题
    • 线下输出, 某些开源协议导致的软件分发风险
    • 架构迁就数据库, 导致开发周期变长、软件|硬件|维护成本增加
  • 2、影响业务, 营收、客户数,

    • 如果出现异常, 导致业务受到影响
  • 3、企业形象

    • 稳定性、安全问题、数据泄露等问题...

三、谁为数据库选型负责

  • 开发者?
  • DBA?
  • 架构师?
  • 技术总监?
  • CTO?
  • 技术委员会?

怎么选型?

四、选型中最容易踩到的几个坑

  • 大公司用什么我就用什么, 没大错.
  • 用熟不用生.
  • 统一技术栈, 一个库解决一切.

五、在什么时间点选型?

架构设计阶段

六、架构设计阶段有哪些能确定|预判的指标?

一定不完整, 请各位自行补充

1、技术指标

1、业务类别(在线事务处理、离线分析、实时分析、混合业务)
2、业务场景
3、数据量
4、业务场景相关性能指标(并发、qps、rt)
5、行业合规诉求
6、开发语言
7、应用级功能诉求(图像识别, 分词搜索, GIS, 用户画像, 化学分析, 多维搜索, ...)
8、各种场景的工业标准性能指标(tpcc tpch tpcds)
9、可用性
10、可靠性
11、安全
12、一致性要求
13、扩展性要求
14、容灾要求
15、可恢复的目标范围要求
16、恢复耗时要求

2、商务指标

1、业界成功案例
2、使用这个产品时的开发周期
3、使用这个产品时的开发人力投入成本
4、使用这个产品时的项目it投入成本
5、数据库软件license成本(不同输出形式下的成本和风险)
6、数据库运维人力投入成本
7、[云产品成本]

3、生态指标

1、发展趋势(全球趋势、本土趋势: 谷歌搜索趋势、stackoverflow趋势、招聘数量)
2、活跃度(bug响应速度, 修复速度. 小版本发布频率. 大版本发布频率. 提交数.)
3、培训公司数量、规模(全球、本土)
4、学习成本(有数据库基础到达中级水平需要多长时间)
5、服务公司数量、规模(全球、本土)
6、云厂商数量、规模
7、数据库厂商数量、规模
8、社区规模(人数、内容、活动、流量)
9、市场份额

七、建立DB画像库

建议定期更新数据

数据库种类

一定不完整, 请各位自行补充

  • 缓存
  • 关系
  • 离线仓库
  • 在线仓库
  • nosql
  • 时序
  • GIS
  • ...

画像库

一定不完整, 请各位自行补充

  • pg,
  • mysql,
  • oracle,
  • greenplum,
  • polardb o,
  • adb pg,
  • redis,
  • hbase,
  • mongo,
  • timescaledb,
  • agensgraph,
  • edgedb,
  • postgis,
  • ... ...

八、数据库产品很多, 怎么做到深度分析?

1、内部技术专家

  • 建议技术栈多元化, 提高技术竞争力.

2、聘请外部技术顾问

  • 推荐, 没屁股, 比较公正

3、外部参考资源

  • 权威行业报告

九、建立评估模型

类似招标书,建立评估模型。

1、技术分

2、商务分

3、生态分

直播地址

免费领取阿里云RDS PostgreSQL实例、ECS虚拟机

目录
相关文章
|
2月前
|
SQL 关系型数据库 数据库连接
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
本文介绍了PHP中PDO(PHP Data Objects)扩展的基本概念和使用方法。内容包括PDO类和PDOStatement类的介绍,PDO的简单使用,预定义占位符的使用方法,以及PDOStatement对象的使用。文章还讨论了绑定预定义占位符参数的不同形式,即bindValue和bindParam的区别。通过具体示例,展示了如何使用PDO进行数据库连接、数据查询、数据插入等操作。
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
|
3月前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
47 1
|
3月前
|
数据库连接 数据库
实现加载驱动、得到数据库对象、关闭资源的代码复用,将代码提取到相应的工具包里边。优化程序
该博客文章展示了如何通过创建工具类`Connectiontools`实现数据库连接、语句执行以及资源关闭的代码复用,以优化程序并提高数据库操作的效率和安全性。
|
3月前
|
存储 SQL 数据库
【计算机三级数据库技术】第7章 数据库及数据库对象--附思维导图
文章概述了数据库的创建、维护、架构、分区表、索引和索引视图的操作要点,并提供了SQL Server环境下的具体T-SQL命令示例。内容涵盖了数据库文件的管理、架构的使用、分区表的创建和优化、索引的创建与删除,以及索引视图的定义和应用场景。
36 2
|
3月前
|
SQL 关系型数据库 数据库
手把手教你管理PostgreSQL数据库及其对象
手把手教你管理PostgreSQL数据库及其对象
70 0
|
3月前
|
SQL 数据库
拒绝了对对象 ‘GetTips‘ (数据库 ‘vipsoft‘,架构 ‘dbo‘)的 EXECUTE 权限
拒绝了对对象 ‘GetTips‘ (数据库 ‘vipsoft‘,架构 ‘dbo‘)的 EXECUTE 权限
41 0
|
4月前
|
Oracle 关系型数据库 数据库
|
4月前
|
存储 JSON 数据库
项目管理定义问题之什么是序列化大对象的值对象数据库形态
项目管理定义问题之什么是序列化大对象的值对象数据库形态
|
5月前
|
数据库 微服务 NoSQL
探索微服务架构下的数据库选型与优化策略
在现代软件开发中,微服务架构已成为一种常见的设计范式。而数据库在微服务架构中的选型与优化策略对整个系统的性能和稳定性至关重要。本文将探讨在微服务环境下,如何选择适合的数据库类型以及优化数据库性能的策略。
下一篇
无影云桌面