磨砺技术珠矶,践行数据之道,追求卓越价值
回到上一级页面: 回到顶级页面:
如题,前领导谈起此话题。
我觉得这是很有意思的。如果我是设计师,该如何来设计?
我所能想到的是:
一:应用层面,
根据应用的状况,进行数据库水平分割(个人理解,就是把不同应用的表,分发到不同数据库节点)。
二:每一个逻辑数据库的层面:
采用集群,进行负载分割。
但是集群方案需要慎重选择,不是所有的集群方案都有负载分发的能力的。所以要采用multi-master方式来分布负载。
就是说,逻辑上是一个数据库,但物理实现上是多个存储节点同时参与运算如查询等来提高响应速度。
三:对逻辑数据库中的每一个表的层面:
采用分区表,合理运用并行处理能力。
如果可能,对频繁使用的查询所涉及的表,采用簇表。
四:在物理数据库节点层面,
在成本允许的情况下,
尽量多加CPU,提高并行运算能力(max_connections的合理值,受此影响)
多增加内存,采用高速磁盘,最好是用固态硬盘,减少IO延迟。
五:在具体的SQL查询中,如果可能,采用Hint提示,使用并行查询
回到上一级页面: 回到顶级页面:
磨砺技术珠矶,践行数据之道,追求卓越价值