数据库架构设计思路、表结构设计方面思路

介绍数据库设计,表结构设计、访问设计、物理存储设计。

数据库设计思路:

1.单机: 单机就是把做的系统部署到一台服务器上,所有的请求业务都由这台服务器处理。显然,当业务增长到一定程度时,服务器的硬件会无法满足业务需求。
2.集群: 在多个服务器上部署多个服务,每个服务就是一个节点,部署N个节点,处理业务的能力就提升N倍(大约)。这些结点的集合就叫做集群。(资源浪费)
3.分布式: 把一个完整的系统,按照业务功能,拆分成一个个独立的子系统,在分布式结构中,每个子系统就被称为“服务”。 通过RPC(远程过程调用)方式通信。

其次可以基于1,2,3 加入读写分离,主从同步(一主一从,一主多从)等策略

第三方中间件
	nginx,ridis,mongodb......

其他设置:
	语言,编码格式,访问权限,数据库引擎选择(InnoDB,MyISAM,MEMORY,CSV,BLACKHOLE,FEDERATED)等设置
	(InnoDB: 这是MySQL的默认数据库引擎,是一种事务安全的引擎,支持外键约束、行级锁定和崩溃恢复能力。
	MyISAM: 这是MySQL的传统数据库引擎,提供了较快的查询性能,但是不支持事务处理和外键约束。
	MEMORY: 这是一种内存引擎,可以将数据存储在内存中,提供较快的查询性能,但是不支持事务处理和外键约束。)

总结
	个人观点: 好的设计应该是分布式和集群的结合,先分布式再集群,具体实现就是业务拆分成很多子业务,然后针对每个子业务进行集群部署,这样每个子业务如果出现了问题,整个系统完全不会受到影响,
	于此同时加入监控系统等策略 如出现宕机等错误及时发出通知。(仅代表个人观点,不接受反驳。。。)

优点:
	系统之间耦合度大大降低,可以独立开发、独立部署、独立测试,系统与系统之间的边界非常明确,排错也变得相当容易,开发效率大大提升。
	系统之间的耦合度降低,从而系统更易于扩展。我们可以针对性地扩展某些业务,就是对子系统集群。例如双十一时,订单子系统、支付子系统需要集群,账户管理子系统不需要集群。
	服务的复用性更高。比如,当我们将用户系统作为单独的服务后,该公司所有的产品都可以使用该系统作为用户系统,无需重复开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值