• mysql面试题16:说说分库与分表的设计?常用的分库分表中间件有哪些?分库分表可能遇到的问题有哪些?


    在这里插入图片描述

    该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点

    面试官:说说分库与分表的设计?

    在MySQL中,分库与分表是常用的数据库水平扩展技术,可以提高数据库的吞吐量和扩展性。下面将具体讲解MySQL中分库与分表的设计。

    1. 分库设计:

      分库即将一个大的数据库拆分为多个小的数据库,每个数据库独立存储一部分数据。分库设计可以根据业务需求、数据量和负载情况来确定。

      • 垂直分库:按照功能或模块将不同的表分配到不同的数据库。
      • 水平分库:按照数据的某种规则(如范围、哈希等)将数据行分配到不同的数据库。

      在分库设计中,需要注意以下几点:

      • 跨库事务问题:跨库事务可能会带来一致性问题,需要使用分布式事务或其他解决方案来保证数据的一致性。
      • 全局唯一性问题:如果需要全局唯一的ID或其他标识符,可以使用分布式ID生成算法,如Snowflake算法。
      • 跨库查询问题:在涉及多个数据库的查询中,需要使用分布式查询工具或者在应用层进行数据整合。
    2. 分表设计:

      分表即将一个大的表拆分成多个小的表,每个表独立存储一部分数据。分表设计可以根据数据量、查询频率和负载情况来确定。

      • 垂直分表:按照功能或模块将不同的列分配到不同的表。
  • 相关阅读:
    VMware+Ubuntu安装过程,含秘钥
    职业成功指南:10条核心原则(下)丨三叠云
    深度学习——BRNN和DRNN
    驱动开发:取进程模块的函数地址
    了解稀疏数组
    拓朴排序例题
    设计模式【六】:适配器
    2D人体姿态估计 - DeepPose
    CFD瞬态计算的一些注意事项
    面试官:有一个 List 对象集合,如何优雅地返回给前端?我懵了。
  • 原文地址:https://blog.csdn.net/qq_27471405/article/details/133563928