博客
关于我
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存储登录_php调用mysql存储过程会员登录验证实例分析
查看>>
MySql存储过程中limit传参
查看>>
MySQL存储过程入门
查看>>
mysql存储过程批量建表
查看>>
MySQL存储过程的使用实现数据快速插入
查看>>
mysql存储过程详解
查看>>
Mysql存表情符号发生错误
查看>>
MySQL学习-group by和having
查看>>
MySQL学习-MySQL数据库事务
查看>>
MySQL学习-MySQL条件查询
查看>>
MySQL学习-SQL语句的分类与MySQL简单查询
查看>>
MySQL学习-子查询及limit分页
查看>>
MySQL学习-排序与分组函数
查看>>
MySQL学习-连接查询
查看>>
Mysql学习总结(10)——MySql触发器使用讲解
查看>>
Mysql学习总结(12)——21分钟Mysql入门教程
查看>>
Mysql学习总结(13)——使用JDBC处理MySQL大数据
查看>>
Mysql学习总结(15)——Mysql错误码大全
查看>>
Mysql学习总结(17)——MySQL数据库表设计优化
查看>>
Mysql学习总结(18)——Mysql主从架构的复制原理及配置详解
查看>>