zoukankan      html  css  js  c++  java
  • Mybatis之分表设计与分表插入

    现今数据量越来越大,表存储的数据越来越多,以至于查的时候非常慢,使工作效率明显的降低

    所以对处理数据的保存就有比较常用的两个解决方案:分表,分区 

    在这里就说对分表和和通过mybatis对数据的增删改查

    分表:是真正的分表,一张表分成很多表后,每一个小表都是完正的一张表

    例如日志表:在数据库创建10张表XXXlog1,XXXlog2,XXXlog3,XXXlog4,XXXlog5........

    然后通过操作的用户的ID去取模  判断该用户的操作日志要插入哪个表

    #${tb_sub}传入的参数值是取模后的数字:1,2,3.....   另外id属于自增不做插入
    <insert id="insert" parameterType="Object" keyProperty="id">
      insert into XXXlog${tb_sub}(user_id,status,send_userid,type,receive_yes,name,contents,create_time,addip,is_del)
      values ( #{userId},#{status},#{sendUserid},#{type},#{receiveYes},#{name},#{contents},now(),#{addip},#{isDel})
    </insert>

    同理改:

     <update id="updateByPrimaryKey" parameterType="Object" >
       update XXXlog${tb_sub} set user_id=#{userId},status=#{status},send_userid=#{sendUserid},type=#{type},receive_yes=#{receiveYes},
    name=#{name},contents=#{contents},create_time=now(),addip=#{addip},is_del=#{isDel} where id=#{id}

    </update>

    同理查:

    <!-- 根据id查询表 -->
    <select id="selectByPrimaryKey"  resultMap="BaseResultMap" parameterType="Object">
        select <include refid="Base_Column_List" />  from XXXlog${tb_sub} where id = #{id} 
    </select>

    同理删:

    <!-- 删除记录 -->
    <delete id="deleteByPrimaryKey" parameterType="Object">
        delete from XXXlog${tb_sub} where id = #{id} 
    </delete>

    对于实体类与表之间的映射不做说明  详情可以查看:https://www.cnblogs.com/gjq1126-web/p/11363635.html

     controller层写法

    #Spring注入
    private IUserMessageReceiveService userMessageReceiveService;
    #方法内容
    Map<String, Object> userMessageReceive = new HashMap<String, Object>(); Long tableName = Long.valueOf(userId) % 10; userMessageReceive.put("tb_sub", "_" + tableName);
    ......
    userMessageReceiveService.insert(userMessageReceive);
  • 相关阅读:
    css | js 实现扩展卡片小demo
    ESLint如何配置
    (js描述的)数据结构[哈希表1.3](10)
    (js描述的)数据结构[哈希表1.2](9)
    VSCode——自定义VSCode背景图片
    VSCode 初次写vue项目并一键生成.vue模版
    (js描述的)数据结构[哈希表1.1](8)
    (js描述的)数据结构[字典](7)
    Vue 实战项目: 硅谷外卖(1)
    脑残式网络编程入门(六):什么是公网IP和内网IP?NAT转换又是什么鬼?
  • 原文地址:https://www.cnblogs.com/gjq1126-web/p/11376937.html
Copyright © 2011-2022 走看看