数据库集群

一、海量数据存储问题

       传统的关系型数据库,因为数据存储量越来越大,已经无法满足快速查询与插入数据的需求。NoSql的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,换取性能的提升。

      有的场景要求绝对要有事务与安全指标,这时候NoSql一些折中是无法满足使用场景,还需要使用关系型数据库。由于需要解决海量存储问题,就需要做数据库集群。为了提高查询性能将一个数据库的数据分散到不同的数据库中存储。

      当数据太多,以至于数据库存不下的时候,就需要做数据库分片。

二、数据库分片

       简介:通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。

       【垂直切分】

         按照不同的表来切分。数据量比较大,是因为有几张表中存放的数据量比较大,比如商品表、订单表、商品表等,把不同的表放到不同的数据库中,订单库、商品库、用户库等。

         思路虽然可行,但是假如只是单张表数据量特别大,即使垂直切分后数据库性能也会很低。

       【水平切分】

         按照数据表中列来切分。按照数据表中数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库中。

         大多数的互联网网站采取的是水平切割,因为垂直切割解决不了单表数据量过大的问题。 

         当数据库分片后,数据由一个数据库分散到多个数据库中。此时系统要查询时需要切换不同的数据库进行查询,系统如何知道要查询的数据在那个数据库中?当添加一条记录时要向那个数据库中插入呢?就需要数据库中间件mycat。

三、Mycat读写分离

       数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。对于MySql来说,标准的读写分离是主从模式,一个写节点Master后面跟着多个读节点,读节点的数量取决于系统压力,通常是1-3个读节点的配置。

    

      MySql读写分离和自动切换机制,需要MySql的主从复制机制配合。

四、MySql的主从复制

       

    主从复制需要注意的地方:

     1、主DB Server和从DB Server数据库的版本一致;

     2、主DB Server和从DB Server数据库数据名称一致;

     3、主DB Server开启二进制日志,主DB Server和从DB Server的server_id都必须唯一。

 五、相关面试题

        问:你们的项目如何解决分布式事务问题的?

        答:我们的项目中使用Mycat数据数据库集群,MyCat本身支持分布式事务。

六、SQLServer如何执行主从同步

       Moebius(莫比乌斯)for sql server

 

posted on 2023-09-21 10:11  木乃伊人  阅读(79)  评论(0编辑  收藏  举报

导航