0 0

数据库分表问题10

项目准备给数据库分表,目前5000万级别,打算分10个表,用uid取模 uid%10 路由到具体的表中,有个问题,如果数据库增长到5亿级别 打算分100个表,取模的基数变了 是不是就要将所有的数据重新迁移?这种有什么好的处理方法吗
2014年6月23日 11:36

5个答案 按时间排序 按投票排序

0 0

按区间分段是可以的,特别是根据int 类型的主键范围划分。
比如:
1~500W 是一张表,500W~1000W是一张,这样分成10张,那么横向扩展的时候不用做迁移,但是查询的时候得用代理层,当然这种分发 出现联合查询 的时候会出现一些麻烦,可以通过一些缓存。

像阿里的TDDL 类似的中间件有一些处理办法,但是反正还不是很全,可以去参考下吧

2014年6月24日 23:08
0 0

可以用range和取模结合的路由方式,这样兼顾了数据迁移和数据的均衡性

比如前1亿数据分20张表,1-2亿的uid也分20张表;这样各不干扰
当数据继续增长到3亿,那么继续添加新的server再分20张表  

2014年6月24日 08:16
0 0

根据不同的号段进行不同的路由算法即可

2014年6月23日 17:57
0 0

不同数据段取用不同的基数,不就可以了

2014年6月23日 14:45
0 0

啥数据库哦.. 5000w 就分表了....
一般分表都是按 时间,区域,类型等 分表的..更加uid 分的不多吧

2014年6月23日 14:36

相关推荐

    zabbix 5.0 mysql 数据库分表操作详细流程

    其中有每个命令的使用说明与注释。并增加了清理数据的方式。以及导入输入的注意事项

    PHP操作mysql数据库分表的方法_.docx

    总的来说,PHP操作MySQL数据库进行分表是解决大数据量问题的有效手段。通过合理的设计和实现,可以显著提高数据库性能,降低单表压力,为应用提供更好的支撑。在实践中,要不断优化和调整策略,以适应不断变化的业务...

    数据库分库分表

    分库分表虽然可以解决数据量大、查询慢的问题,但也带来了一些新的挑战,比如跨库事务的处理、数据一致性问题、分布式JOIN操作的困难等。因此,在实施分库分表时,需要综合考虑业务需求、数据规模、系统架构以及团队...

    数据库完成计分表

    - **标题**:“数据库完成计分表”,明确了文档的主要内容是关于数据库作业的成绩评定。 - **描述**:“对学生Access数据库大作业分数进行统计”,进一步说明了计分表的具体用途。 - **标签**:“计分表”,强调了...

    数据库分表处理设计思想和实现

    数据库分表处理是一种应对高负载环境下数据库压力的有效策略。在大数据量的情况下,单表操作可能导致锁表、阻塞,严重影响数据库性能和用户体验。为了解决这些问题,分表技术应运而生,通过将数据分散到多个表中,...

    MySQL数据库分表批量主键查询代理-mysql-partitions-proxy.zip

    "MySQL数据库分表批量主键查询代理-mysql-partitions-proxy"项目就是为了应对这一挑战而设计的。这个开源工具旨在优化数据库的查询效率,尤其在面对分表场景下的主键批量查询时,它能提供一个代理服务,有效地协调和...

    TP5+MySQL通用分表代码

    - 分表情况,2:日期分表,按照目标表里面的记录日期的字段,按照日期【日、周、月、年】拆分成多个表【本代码仅考虑unix时间戳来分表,其它不支持,您可以自己思考,自己修改代码】 - 注意,支持【子表】,填入...

    shardingsphere 整合 达梦数据库 实现分表分库 (包含test demo)

    1、shardingsphere 并不直接支持达梦数据库,需要实现部分接口逻辑。 2、本demo并不完全支持达梦sql 3、包里面含有test demo可以直接测试 4、感谢shardingsphere 团队。 5、具体如何实现的 请查看我的博文 ...

    MySQL分表及分表后插入sql

    MySQL分表及分表后插入sql语句,表为订单表,可以参考一下

    Python+MySQL分表分库实战

    综上所述,"Python+MySQL分表分库实战"的学习内容涵盖了数据库设计原则、Python数据库操作技巧、分库分表策略以及性能优化等多个方面。通过学习和实践,开发者可以有效地解决大数据场景下的存储和查询问题,提高系统...

    数据库分库分表思路.docx

    分库分表后,数据库管理系统需要解决的问题包括跨分片查询、分布式事务处理、数据一致性保证等。这些问题通常需要借助中间件如ShardingSphere、MyCAT等来解决,它们提供了路由、分片计算、事务管理等功能,帮助实现...

    MySQL 数据库分表分区.pdf

    日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致...分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率

    多数据源+数据库分库分表

    水平分表是在同一个数据库内,把同一个表的数据按一定规则拆到多个表中,多数据源采用 mybatis-plus的dynamic-datasource 分库分表采用sharding-jdbc 数据库连接池管理是alibaba的druid-spring-boot-starter 项目使用...

    php mysql分库分表实例

    分库分表是一种常见的数据库垂直切分和水平切分策略,用于解决单一数据库性能瓶颈问题。垂直切分是根据业务逻辑将数据分散到多个数据库中,通常依据表的相关性或访问频率来进行。而水平切分则是按照某个字段(如用户...

    数据库分库分表的技术演进与最佳实践.docx

    面对如此庞大的数据量,单一的数据库表已经无法满足需求,而数据库分库分表技术则是解决这个问题的有效方法。本文将从技术演进和最佳实践两个方面来讨论数据库分库分表的技术演进和最佳实践。 一、 Why Not NoSQL/...

    oracle 查询从分表取数据

    一个简单的oracle数据库环境下的存储过程,介绍了如何从带年月人的分表取数据

    数据库分库分表存储分析思路

    数据库分库分表存储是解决大数据量存储的有效方法之一,但是它也存在一些问题,例如join操作问题、事务问题、成本问题等。为了解决这些问题,需要选择合适的分库或分表方法。 分库 分库是将不同的业务数据分散存储...

Global site tag (gtag.js) - Google Analytics