博客
关于我
Mysql的分表设计方法 (水平分表和垂直分表)
阅读量:790 次
发布时间:2023-02-13

本文共 572 字,大约阅读时间需要 1 分钟。

数据库分表是优化数据库性能的重要手段之一,常见的分表方法主要有水平分表和垂直分表。

水平分表:

水平分表的核心思想是将一个大型数据库分成多个小型数据库。以QQ登录系统为例,假设QQ用户规模达到100亿,如果仅使用一张表,每次登录查询都需要从100亿数据中进行查找,会导致性能严重下降。通过将这张表分成100份,每份包含1亿条记录,分别存储为qq0、qq1、...、qq99等多个表,就大幅降低了查询效率。

具体实现方式是将用户ID进行取模运算,比如ID为1000086,经过100取模运算后得到86,进而将用户ID与表名 qq86 组合,访问对应的数据库进行查询。这种方式能够显著减少每次查询所需的IO操作次数,从而大大提升数据库性能。

垂直分表:

垂直分表的主要应用场景是当一个数据库中的记录数量不多,但字段数量却非常庞大,导致查询时需要进行大量IO操作而性能下降的场景。例如,学生答题记录表AA包含字段Id、name、分数、题目、回答等,其中题目和回答字段较大,而Id、name、分数较小。

在这种情况下,垂直分表可以通过将大字段拆分到不同的表中来优化性能。例如,将题目存储到一个表bb中,将回答存储到另一个表cc中,并与原表AA通过一对一关系连接。这样,在查询时,只需要关注需要的分数字段,就无需扫描题目和回答字段,从而大幅提升查询效率。

转载地址:http://rvdfk.baihongyu.com/

你可能感兴趣的文章
MySQL是如何做容器测试的?
查看>>
mysql更改数据库表utf-8_修改mysql数据库为 utf-8
查看>>
mysql更改表引擎INNODB为MyISAM的方法总结
查看>>
mysql更新一个表里的字段等于另一个表某字段的值
查看>>
Mysql更新时间列只改日期为指定日期不更改时间
查看>>
MySQL更新锁(for update)摘要
查看>>
mysql更新频率_MySQL优化之如何了解SQL的执行频率
查看>>
mysql替换表的字段里面内容
查看>>
MySQL最多能有多少连接
查看>>
MySQL最大建议行数 2000w,靠谱吗?
查看>>
MySQL有哪些锁
查看>>
MySQL服务器安装(Linux)
查看>>
mysql服务器查询慢原因分析方法
查看>>
mysql服务无法启动的问题
查看>>
MySQL杂谈
查看>>
mysql权限
查看>>
mysql条件查询
查看>>
MySQL条件查询
查看>>
MySQL架构与SQL的执行流程_1
查看>>
MySQL架构与SQL的执行流程_2
查看>>