MST

星途 面试题库

面试题:微服务架构下如何选择合适的数据库进行数据管理

在微服务架构中,不同的微服务可能有不同的数据管理需求,如有的需要高并发读写,有的对数据一致性要求较高。请阐述你在选择关系型数据库和非关系型数据库时,会考虑哪些因素?
25.3万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试
  • 数据结构和格式
    • 关系型数据库:适用于结构化数据,数据以表格形式存储,有明确的行和列,数据之间存在复杂的关联关系。例如订单系统,订单与订单详情、客户信息等存在关联,用关系型数据库可方便维护这些关系。
    • 非关系型数据库:适合非结构化或半结构化数据,如日志、文档、图片等。像社交媒体平台的用户动态,包含文本、图片等多种格式数据,非关系型数据库能更好存储。
  • 读写性能
    • 关系型数据库:在高并发读写场景下,因需要维护数据一致性和事务处理,性能可能受限。比如高并发的秒杀活动,频繁读写操作对其性能挑战大。
    • 非关系型数据库:能应对高并发读写,像 Redis 基于内存存储,读写速度极快,适用于缓存、实时统计等场景,如电商网站的商品浏览量实时统计。
  • 数据一致性
    • 关系型数据库:通过事务机制保证数据强一致性,能确保数据操作要么全部成功,要么全部失败。在银行转账等对数据一致性要求极高场景应用广泛。
    • 非关系型数据库:多数采用最终一致性模型,在分布式环境下,数据更新后不同节点同步存在延迟。像内容分享平台,对数据一致性要求相对没那么高,可接受一定延迟。
  • 扩展性
    • 关系型数据库:纵向扩展(提升单机性能)相对容易,但横向扩展(增加服务器节点)复杂,需考虑数据分片、复制等技术难题。
    • 非关系型数据库:天生具备良好的横向扩展性,如 Cassandra 等分布式非关系型数据库,可轻松添加节点提升性能和存储容量。
  • 成本
    • 关系型数据库:商业数据库(如 Oracle)通常需要购买许可证,成本较高;开源关系型数据库(如 MySQL)虽无许可费用,但对运维人员技术要求较高,运维成本不容忽视。
    • 非关系型数据库:多数开源免费,且部署和维护相对简单,成本较低。例如 MongoDB 开源且易上手,适合初创企业和对成本敏感项目。