首页 > 数据库 >分布式数据库库数据表导入mysql之后数据量增加问题

分布式数据库库数据表导入mysql之后数据量增加问题

时间:2022-12-21 16:35:21浏览次数:40  
标签:DEFAULT decimal 分片 char 数据表 导入 数据量 mysql NULL

1、背景: 新疆分布式数据库crm数据导入,表做分片,导入之后表数据量比原表数据量多。 导入方式:load 2、排查过程 以表tf_bhb_ocs_batdeal_2016测试排查: 1)表结构: CREATE TABLE `tf_bhb_ocs_batdeal_2016` ( `DEAL_ID` decimal(22,0) NOT NULL, `BATCH_ID` decimal(22,0) DEFAULT NULL, `SERIAL_NUMBER` varchar(40) NOT NULL, `CHANNEL_NO` decimal(22,0) NOT NULL, `ACCEPT_DATE` datetime NOT NULL, `ACCEPT_MONTH` decimal(22,0) NOT NULL, `ACCEPT_STAFF_ID` char(8) NOT NULL, `ACCEPT_DEPART_ID` char(5) NOT NULL, `ACCEPT_MODE` char(1) NOT NULL, `MONITOR_TYPE` varchar(3) NOT NULL, `WRITE_TYPE` char(1) NOT NULL, `ENABLE_TAG` char(1) NOT NULL, `START_DATE` datetime DEFAULT NULL, `END_DATE` datetime DEFAULT NULL, `DEAL_STATE` char(1) NOT NULL, `DEAL_TIME` datetime DEFAULT NULL, `DEAL_RESULT` varchar(500) DEFAULT NULL, `TRADE_ID` decimal(22,0) DEFAULT NULL, `REMARK` varchar(500) DEFAULT NULL, `BIZ_TYPE` varchar(2) DEFAULT NULL, `MONITOR_FLAG` char(1) DEFAULT NULL, `MONITOR_RULE_CODE` varchar(5) DEFAULT NULL, KEY `IDX_TF_BHB_OCS_BATDEAL_2016_S` (`SERIAL_NUMBER`), KEY `PK_TF_BHB_OCS_BATDEAL_2016` (`DEAL_ID`,`ACCEPT_MONTH`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 2)分片规则:             trade_id       murmur256 3)测试方式: 将发现的数据多的记录单独拿出做以下测试,txt文件内容如下 1.表不分片时,decimal对应列不为空,取一条数据导入分布式Mysql数据库,查询结果为1条;(未分片测试咩有截图) 2.表不分片时,decimal对应列为空,取一条数据导入分布式Mysql数据库,查询结果为1条; 3. 表分片,decimal对应列为空,往分布式Mysql数据库导入一条数据结果为,查询结果为256条; 4.表分片,decimal对应列为空,替换为0,往分布式Mysql数据库导入一条数据结果为,查询结果为1条; 查看表结构发现: 分片字段数据类型默认为null, 而 代理是根据传入的切分字段的值进行计算路由的,DEFAULT NULL,或者 DEFAULT 0都是在MySQL端默认的,没有作用,所以切分字段必须要传入值。 解决:
  根据以上原理, 将切分规则字段修改为不为空的字段 DEAL_ID , 重启代理生效,在进行测试,数据量对比正常

标签:DEFAULT,decimal,分片,char,数据表,导入,数据量,mysql,NULL
From: https://www.cnblogs.com/harda/p/16996521.html

相关文章

  • 151-docker 安装mysql 区分大小写
    拉镜像:dockerpullmysql:latest启动容器:dockerrun-p3306:3306--namemysql-case\-v/mydata/mysql/log:/var/log/mysql\-v/mydata/mysql/data:/var/lib/mysql......
  • mysql federated引擎构建MySQL分布式数据库
    使用mysql federated 引擎构建 MySQL 分布式数据库访问层前言:随着应用复杂度的增加,数据库不断细化切分,导致应用程序中数据库应用就得复杂,凌乱。绝大部分程序人员可能......
  • KingbaseES 实现 MYSQL 的 delete limit 写法
    使用MySQL的用户可能会比较熟悉这样的用法,更新或删除时可以指定限制更新或删除多少条记录。updatetlsetxxx=xxxwherexxxlimit10;deletefromtlwherexxxlimit......
  • MAC 安装 MySQL
    安装#查询mysql版本➜~brewsearchmysql==>[email protected]@5.6mysqlmysql-co......
  • 设置MySQL数据库的远程连接权限
    解决方案在服务器上登录数据库,然后执行如下授权SQL语句。该授权SQL语句的含义为root用户可用任何IP地址登录数据库,操作任何数据库中的任何对象。 GRANTALLPRIVILEG......
  • MySQL xtrabackup 物理备份原理
    一、简介xtrabackup是percona公司开源的MySQLinnodb物理备份工具,支持在线热备(备份时不影响数据读写),在工具在业内生产上被大量使用,本次使用xtrabackup备份的日志和数据......
  • MySQL锁等待超时问题技术分享
    背景错误信息:Lockwaittimeoutexceeded;tryrestartingtransaction,我们常称为锁等待超时。根据类型一般分为两类:1、 行锁等待超时;最常见的场景,因为事务等待行锁超......
  • MySQL增量同步工具OTTER
    背景:    鉴于****项目中有使用Otter同步数据,同时重庆资源池ESOP也有同样的需求,之前采用的是Federated引擎来实现,但是爱可生RDS不支持该引擎,必须采用其他的工具来实现......
  • mysql-ibtmp1表空间暴涨
    1、在做****巡检时,发现生产主机xxxx上的临时独立表空间ibtmp1暴涨至200G,借此梳理关于临时表空间相关的点2、ibtmp1暴涨如何处理? 2.1简单说明 ibtmp1是非压缩的innodb......
  • Mysql高可用之MMM架构
    MMM(Master-MasterreplicationmanagerforMySQL)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQLMaster-Master(双主)复制,......