数据库分库分表

  • 分库分表的目的在于减少数据库单库单表的负担,提高查询性能,缩短查询时间。
  • 分库分表分别水平切分和垂直切分。
  • 垂直切分:分为垂直分库和垂直分表,其中垂直分库是指根据业务的耦合度,将关联度较低的不同表存储于不同的库中,类似于大系统拆分为小系统;垂直分表是指基于数据库表中的列,将不常用的列进行划分成新表,可以使单个表中的数据量变少减少跨页,使得单个页中字段更多,使内存能够加载更多的数据,提高命中率,减少磁盘IO,提高性能。
  • 水平切分:水平切分是根据表内数据内在的逻辑关系,将同一个表按不同的条件分散到多个数据库或多个表中,每个表中只包含一部分数据,从而使得单个表的数据量变小,达到分布式的效果。但只是库内分表,仅仅是解决了单表数据过大的问题,并没有把单表的数据分散到不同的物理机上,因此并不能减轻 MySQL 服务器的压力,仍然存在同一个物理机上的资源竞争和瓶颈,包括 CPU、内存、磁盘 IO、网络带宽等。
  • 使用哪种方式分库分表需要依据情况而定,比如数据库是因为表太多而造成海量数据,并且项目的各项业务逻辑划分清晰、低耦合,那么规则简单明了、容易实施的垂直切分必是首选。而如果数据库中的表并不多,但单表的数据量很大、或数据热度很高,这种情况之下就应该选择水平切分,水平切分比垂直切分要复杂一些,它将原本逻辑上属于一体的数据进行了物理分割,除了在分割时要对分割的粒度做好评估,考虑数据平均和负载平均,后期也将对项目人员及应用程序产生额外的数据管理负担。

相关推荐

  1. 数据库分库

    2024-06-18 14:28:02       7 阅读
  2. 关于数据库分库

    2024-06-18 14:28:02       9 阅读
  3. 数据库分库的原则

    2024-06-18 14:28:02       32 阅读
  4. 分库,,分区,分片

    2024-06-18 14:28:02       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-18 14:28:02       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-18 14:28:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-18 14:28:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-18 14:28:02       18 阅读

热门阅读

  1. MySQL触发器基本结构

    2024-06-18 14:28:02       6 阅读
  2. Cesium4Unreal - # 011A Http通信

    2024-06-18 14:28:02       5 阅读
  3. windows11 ssh 无法连接问题解决方法

    2024-06-18 14:28:02       6 阅读
  4. C语言、C++和C#的区别在什么地方?

    2024-06-18 14:28:02       8 阅读
  5. HTML 事件

    2024-06-18 14:28:02       6 阅读
  6. 云端数据保护的挑战与对策

    2024-06-18 14:28:02       8 阅读
  7. 【C/C++】工业级别的日志文件轮转策略原理

    2024-06-18 14:28:02       6 阅读
  8. VO 和 DO

    2024-06-18 14:28:02       7 阅读
  9. 8D错漏件分析改进

    2024-06-18 14:28:02       5 阅读
  10. 编程连接主板:深入探索与实践的技术之旅

    2024-06-18 14:28:02       7 阅读
  11. 程序员做电子书产品变现的复盘(5)

    2024-06-18 14:28:02       5 阅读
  12. Halcon C++ XLD 数据写入图片

    2024-06-18 14:28:02       8 阅读