• 数据库分表自增ID问题


    ............................................................................................................................................
    假设我们对tbl进行分表:
    tbl_1、tbl_2
    并且tbl_1、tbl_2都使用自增ID,则可能出现自增ID重复问题:
    tbl_1:
    id
    1

    tbl_2:
    id
    1
    ............................................................................................................................................
    在进行业务处理时如果根据ID修改信息则可能会导致另一张子表相同ID的数据受到影响:
    update tbl
    set xx='test'
    where id =1 ;
    ............................................................................................................................................
    解决方案:
    1.通过修改步长并且为每张表设置不同的起始值即可实现:
    tbl_1:起始位置:1、步长:2
    tbl_2:起始位置:2、步长:2

    tbl_1中的id为:1、3、5、7、9...
    tbl_2中的id为:2、4、6、8、10...
    这样所有的子表ID都不会出现重复
    多张表同理
    2.通过设置分表规则对应表也可实现:
    假设
    tbl_1是所有性别为男的信息
    tbl_2是所有性别为女的信息
    则我们可以设置一张中间表:
    tbl_mid:
    性别 子表名称
    男 tbl_1
    女 tbl_2
    这样我们进行查询的时候通过性别就能确定到对应的子表,即便子表之间有重复ID我们也能查询出对应的记录。
    ............................................................................................................................................
    以上个人见解,仅供参考,不足之处请多指教。
    ............................................................................................................................................

  • 相关阅读:
    战争迷雾Fog Of War
    [UE4]运行时UMG组件跟随鼠标的逻辑:拖拽UMG组件(蓝图)
    [UE4]FString常用API
    用PNG作为Texture创建Material
    [UE4]C++代码操作SplineMesh
    [UE4]Visual Studio的相关插件安装:UE4.natvis和UnrealVS Extension
    TSubobjectPtr和C++传统指针的区别
    组件Slate教程 & UMG widget构造初始化函数中获取其内部组件
    设置UMG的ComboBox(String)字体大小
    UMG设置组件自适应居中或靠边
  • 原文地址:https://www.cnblogs.com/LoveShare/p/14430769.html
Copyright © 2020-2023  润新知