热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

手把手教你如何进行业务系统数据库技术选型

手把手,教,你,如何,进行,业务,系

随着云计算、大数据、物联网时代的到来,越来越多的网民涌入互联网,越来越多的应用系统需要支撑海量数据存储,还需要随着业务需求满足高并发、高可靠、高扩展性等要求,传统的关系型数据库已经不能完全满足需求了,因此NoSQL应运而生。

那么SQL是什么?、NoSQL又是什么?业务系统如何数据库技术选型呢?

手把手教你如何进行业务系统数据库技术选型

NoSQL!= NO SQL,而是NotOnlySQL,作为关系型数据库的补充而出现。关系型数据库即采用了关系模型来组织的数据库,简单来说,就是二维表格模型,包含关系(表名)、元组(二维表中的一行)、属性(二维表中的一列)、域(属性的取值范围)、关键字(唯一能标识元组的属性)、关系模式(表结构,对关系的描述)等概念。以一个用户信息表来说,用户信息表就是整个关系,元组就是姓名、性别、年龄、电话、地域组成的一行记录,属性则是单独的地域列、年龄列等,域就是地域是中国全省市等,关键字就是用户ID、能唯一标识这个用户,关系模式就是这整个表,包含姓名、性别、年龄、电话、地域属性。

数据库的使用根据具体的业务场景而确定,毫无疑问,涉及交易场景,关系型数据库是必不可失的,因为我们要求数据必须一致,不能允许任何的差错出现。在大部分互联网企业中,一般是SQL与NoSQL配合使用。现以某高速发展的电商网站来聊聊如何技术选型?

手把手教你如何进行业务系统数据库技术选型

从业务类型来看,电商具备用户量&订单量高速增长、网站延迟低、对部分数据准确性要求高的特点,因此需要数据库能支持高读写的并发量、低延迟高吞吐、安全稳定、高可用的特点。从数据类型来看,包含用户个人信息数据、商品信息数据、交易数据三类,对于交易数据需要保证不能出错,而其它类数据则要求能存储不出错。从数据驱动运营的角度来看,未来会利用用户在平台产生的所有数据进行数据分析、智能推荐、二次营销等。综上所述,我们选择的数据库是MySQL与MongoDB。

选择MySQL毫无疑问是为了保证业务核心数据如用户信息、交易数据等不能出错,这是关系型数据库的最大优势。选择MongoDB则是因为其高可用、文档模型的特点。关于高可用,首先MongoDB的架构是primary、secondary模式,一个主节点接受server的读写,两个从节点同步primary主节点的数据,当主节点发生故障时,从节点进行选举,产生新的主节点,从而保障了业务的高可用。

手把手教你如何进行业务系统数据库技术选型

其次MongoDB支持数据分片,当业务量急速扩展时,原先部署数据库的五台服务器就不够了,现在需要增加服务器节点数,对于Mysql来说,采用分库分表就可以解决问题,对于MongoDB则是通过将一个集合上的数据按片键分到不同的分片上,减少同一个数据文件上的数据量,再通过配置文件将数据引向不同的分片即可。

手把手教你如何进行业务系统数据库技术选型
手把手教你如何进行业务系统数据库技术选型

最后MongoDB支持文档模型,可以根据业务数据类型的变化来去增加或删减字段,而不需要按照确定的表结构去增加删除。比如在Mysql中,当一个用户填写了家里的收货地址、公司收货地址、朋友收货地址等多个地址时,需要建立联系人表、地址表将其关联,而在MongoDB中只需要一个集合就可以搞定了。

手把手教你如何进行业务系统数据库技术选型
手把手教你如何进行业务系统数据库技术选型

在数据库选型我们都需要考虑数据量、并发量、实时性、一致性、读写分布、数据类型、安全性、运维成本都指标,常见的系统数据库选型如下所示:

手把手教你如何进行业务系统数据库技术选型

现在假设你在主导或参与一个系统的开发,相信你已经非常清楚如何选型数据库、如何应对后续出现的问题了吧?知其然知其所以然~


推荐阅读
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 为何Serverless将成为未来十年的主导技术领域?
    为何Serverless将成为未来十年的主导技术领域? ... [详细]
  • 提升MySQL数据库架构性能的策略与方法
    为了提升MySQL数据库架构的性能,本文探讨了多种策略与方法。首先,分析了影响数据库性能的关键因素,并详细阐述了数据库结构优化的重要性。接着,介绍了数据库设计的基本步骤,包括第一、第二和第三范式的应用,以及反范式化设计的场景。此外,还讨论了数据库物理设计的关键要素,如表定义、索引设计和存储引擎选择,以确保高效的查询响应和数据管理。 ... [详细]
  • RocketMQ在秒杀时的应用
    目录一、RocketMQ是什么二、broker和nameserver2.1Broker2.2NameServer三、MQ在秒杀场景下的应用3.1利用MQ进行异步操作3. ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • Oracle字符集详解:图表解析与中文乱码解决方案
    本文详细解析了 Oracle 数据库中的字符集机制,通过图表展示了不同字符集之间的转换过程,并针对中文乱码问题提供了有效的解决方案。文章深入探讨了字符集配置、数据迁移和兼容性问题,为数据库管理员和开发人员提供了实用的参考和指导。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • Syncnavigator激活工具及破解方法详解
    本文详细介绍了Syncnavigator激活工具的使用方法及其破解技巧。用户可以通过访问官方网站www.SyncNavigator.CN获取相关资源,并通过客服QQ 1793040获得技术支持和帮助。此外,文章还提供了详细的步骤说明和常见问题解答,以确保用户能够顺利激活并使用Syncnavigator软件。 ... [详细]
  • MongoDB高可用架构:深入解析Replica Set机制
    MongoDB的高可用架构主要依赖于其Replica Set机制。Replica Set通过多个mongod节点的协同工作,实现了数据的冗余存储和故障自动切换,确保了系统的高可用性和数据的一致性。本文将深入解析Replica Set的工作原理及其在实际应用中的配置和优化方法,帮助读者更好地理解和实施MongoDB的高可用架构。 ... [详细]
  • 本文精选了几个结合 Vue 和 Spring Boot 的优质开源项目,适合开发者学习和参考。这些项目不仅涵盖了前后端分离的最佳实践,还提供了丰富的功能示例和详细的文档,有助于提升开发效率和技术水平。项目地址:https://github.com/ 示例链接。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
author-avatar
归向大海_651
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有