• 数据库负载问题的架构思路


    一:数据库瓶颈的出现

      随着数据库负载的增大,对数据库读写性能的要求成为瓶颈。

      一般情况下,用户对数据库的操作,70%是读,30%是写,因此数据库的性能瓶颈大多出现在读上,想办法提高读取速度也是解决数据库瓶颈的第一手段。

     

    二:数据库调优

      一般情况下,很多性能问题不是真的因为硬件造成的,而是开发阶段过于追求开发效率,导致索引没建好、sql语句没写好或者循环嵌套查询等。

      因此,当出现系统性能问题时,应该第一时间检查代码,进行优化。

    三:缓存

      我们一般采用缓存中间件进行尝试,利用redis或memcache集群来承担大部分的数据读取任务。

      一般情况下,到这一步已经足以满足大部分中小型项目的读取需求了。

      注意:缓存方案仅适用于对一致性没有强要求的业务场景,对于传统企业ERP系统等流程环节紧密相扣的情况,不适用。

    四:读写分离

      对数据库进行“一主多从”的架构模式进行部署,将写操作集中在主数据库,读操作分派到从数据库上进行。

      数据库读写分离的实现有多种:在代码中自己实现算法进行分派,或者使用Mycat、Atlas等中间件进行分派,或者在数据库主从部署时数据库本身就提供此特性。

      注意:主从数据库之间的备份存在一定延迟,因此对于业务流程紧密关联的场景下也不适应,对于传统ERP系统,可以将报表、BI分析等业务功能进行读写分离,但是生产业务单据还是要在主数据库进行操作。

      代码实现读写分离:https://www.cnblogs.com/ya-qiang/p/9405480.html

      Atlas实现读写分离:https://blog.csdn.net/weixin_41488238/article/details/80196108

       ProxySQL实现读写分离:https://blog.csdn.net/jolly10/article/details/80391404

      Mycat实现读写分离:https://blog.csdn.net/thundermeng/article/details/80578971

     五:分库分表

      面对 写操作密集型 系统,单纯的主从备份读写分离并没有解决 写操作 造成的性能问题。

      此时需要进行分库分表。

    六:集群

      todo。

      

      

      

  • 相关阅读:
    python3中,os.path模块下常用的用法总结
    python 中str format 格式化数字补0方法
    5分钟让你明白“软链接”和“硬链接”的区别
    获得Python脚本所在目录
    sshd超时
    pip 指定源安装
    python编程规范
    Git冲突解决
    Git冲突解决
    git 更新某个目录或文件
  • 原文地址:https://www.cnblogs.com/ygj0930/p/11282361.html
Copyright © 2020-2023  润新知