美文网首页
浅谈分表

浅谈分表

作者: 夜藍 | 来源:发表于2022-04-27 18:00 被阅读0次

在程序使用中,我们会发现有些业务表数据量越来越大,查询效率越来越低,已经到了必须考虑分表的时候。那么如何分表呢?以下是个人心得:

方案一、按照时间分表

    按照时间分表很好理解,比如按照天、周、月、年作为分表依据;优点是分表规则简单,缺点是数据查询条件必须带上时间参数。

方案二、按照userId分表

    web项目中,一般请求都能获取token或session,间接可以获取身份id(userId)。然后根据userId值设置自己的规则生成表,再建一个userId(主键)和tableName关联的数据表。新产生的业务数据就存入对应的表,同时把以前的业务表数据迁移过来。查询业务数据时先根据当前身份查找对应的tableName,然后再查询对应表数据。

    如何根据userId值设置规则生成表,先附图:

如果userId是整形,可取最后一位数或最后两位数来分表,分表个数分别对应10个和100个,这里需要根据实际情况选择。

    如果userId是UUID字符串,先定义一个全局数组[0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f],一共10+6=16个元素。①若取最后一个字符分表,可以分16个表;②若取最后两位或首尾两位分表,可分16*16=256个表,或者两个字符对应的数组索引相加,可分30个表。userId规则分表的优点是不管后期规则是否变动,只要有身份和表名关联都不影响。缺点是查询所有人最近的业务数据比较麻烦,可以考虑建一个表,只存最近所有人的信息,并定期删除很久以前的数据。

方案三、按照用户组织分表

按照公司、部门、小组等信息分表,前提是确定个人所属组织不会发生改变。优点和缺点和方案二基本相同。

所有思路仅供参考

相关文章

  • 浅谈分表

    在程序使用中,我们会发现有些业务表数据量越来越大,查询效率越来越低,已经到了必须考虑分表的时候。那么如何分表呢?以...

  • 分库分表浅谈

    什么是分库分表 ​顾名思义,分库分表就是按照一定的规则,对原有的数据库和表进行拆分,把原本存储于一个库的数据分块存...

  • MySQL分库分表浅谈

    一、分库分表类型 1、单库单表 所有数据都放在一个库,一张表。 2、单库多表 数据在一个库,单表水平切分多张表。 ...

  • 分库分表浅谈(转)

    出自:https://www.jianshu.com/p/3fed6db29a01 什么是分库分表 ​顾名思义,分...

  • 浅谈分库分表那些事儿

    简介: 本文主要阐述在分库分表改造过程中需要考虑的因素以及对应的解法,还有踩过的那些坑。 本文适合阅读群众:需要从...

  • 浅谈分库分表那些事儿

    简介:本文主要阐述在分库分表改造过程中需要考虑的因素以及对应的解法,还有踩过的那些坑。 本文适合阅读群众:需要从单...

  • 2019 算法面试相关(leetcode)--哈希表

    哈希表相关的原理可以参考下:浅谈哈希表(HashTable)深入理解哈希表哈希表的理解理解HashSet及使用 哈...

  • 面试必备:我们为什么要分库分表?

    目录 什么是分库分表 为什么需要分库分表呢 如何分库分表 什么时候开始考虑分库分表 分库分表会导致哪些问题 分库分...

  • 复刻表一般多少钱?复刻表为什么受追棒?

    大家好,今天万和表业给大家浅谈,分析一下复刻表为什么会受表迷朋友们的热烈追棒,一帮多少钱这个问题。奢侈品牌的腕表一...

  • 浅谈表与里

    与长辈闲聊,归来又阅卷,忽对“表里”有一番小感。 “表”自然是我们看待一切东西的外表,“里”从纵向看是形成其“表”...

网友评论

      本文标题:浅谈分表

      本文链接:https://www.haomeiwen.com/subject/gtelyrtx.html