博客
关于我
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学习总结(3)——MySql语句大全:创建、授权、查询、修改等
查看>>
Mysql学习总结(40)——MySql之Select用法汇总
查看>>
Mysql学习总结(41)——MySql数据库基本语句再体会
查看>>
Mysql学习总结(42)——MySql常用脚本大全
查看>>
Mysql学习总结(43)——MySQL主从复制详细配置
查看>>
Mysql学习总结(44)——Linux下如何实现mysql数据库每天自动备份定时备份
查看>>
Mysql学习总结(45)——Mysql视图和事务
查看>>
Mysql学习总结(46)——8种常被忽视的SQL错误用法
查看>>
Mysql学习总结(48)——MySql的日志与备份还原
查看>>
Mysql学习总结(49)——从开发规范、选型、拆分到减压
查看>>
Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
查看>>
Mysql学习总结(56)——MySQL用户管理和权限设置
查看>>
Mysql学习总结(58)——深入理解Mysql的四种隔离级别
查看>>
Mysql学习总结(59)——数据库分库分表策略总结
查看>>
Mysql学习总结(60)——并发量大、数据量大的互联网业务数据库设计规范总结
查看>>
Mysql学习总结(61)——MySQL优化之DBA级优化整理汇总
查看>>
Mysql学习总结(64)——Mysql配置文件my.cnf各项参数解读
查看>>
Mysql学习总结(65)——项目实战中常用SQL实践总结
查看>>
Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8
查看>>
Mysql学习总结(68)——MYSQL统计每天、每周、每月、每年数据 SQL 总结
查看>>