范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

一个MySQL建表需求的讨论和引导

  昨天收到一个业务同学的需求邮件,一般有些复杂的需求业务同学会发邮件告知我们,需要我们评估之后再做交付,我看了邮件之后,发现这个需求好像有点别扭,大体的意思是在中间件的环境中创建一张表,表结构如下:CREATE TABLE `app_loading_info`  (  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT "自增ID",   `pid` bigint(20) NOT NULL DEFAULT "0" COMMENT ,    `appid` int(11) NOT NULL DEFAULT "0" COMMENT "APPID",    `username` varchar(64) NOT NULL DEFAULT "" COMMENT "姓名",    `card` varchar(20) NOT NULL DEFAULT "" ,    `ai` varchar(40) NOT NULL DEFAULT "" ,    `state` int(11) NOT NULL DEFAULT "0" ,     `ctime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",      `mtime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT "更新时间",      PRIMARY KEY (`id`),      KEY `idx_pid` (`pid`),      KEY `idx_state` (`state`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  按照ID分片,基本逻辑如下:
  每天会去筛选为完成处理的用户数据,重新处理,处理完成后会去修改用户的一个标志位,主要有几个步骤:
  1)根据state状态提取state=0的数据(未完成处理数据)
  2)程序中按照id为区间分批提取
  3)提取完成后修改state为state=1,根据pid,state组合
  看了这个初步的设计之后,我总是感觉哪里不对,于是找业务同学面对面沟通。
  首先对于这个表的定义上,业务同学说是归属于状态表,也就意味着表中的每一个用户都有唯一的状态值对应,这个表中存储的数据量会越来越大。
  其次,按照state状态字段去提取未完成处理的数据,这个目标环境是一套集群环境,集群中是按照id进行分片,但是查询条件按照state是有潜在问题的。
  比如业务层对于自增id的使用,在分片环境中可能是不唯一的,如上图所示,可能id=1最多会存在N条同样的数据(N为分片数),所以从业务需求上是不太能满足的。
  另外根据state=0去查询数据,这个查询的复杂度较高,也就意味着state=0需要遍历所有的分片,每个分片中会通过state=0的索引条件过滤数据最后汇总起来,从使用上来说,这也是分库分表的一个潜在影响,不是很建议这种使用方式。
  还有字段id的设计,按照状态表的使用方式,也是不合理的,在一些特殊的场景中我们会采用id+其他业务属性字段组合主键, 在这里这种场景显然不是。
  如果去掉id字段采用主键的模式,好像就违背了业务初衷根据id进行区间提取的方式,细细品来这个需求是矛盾的。
  如果按照最勉强的方式,建议是指定时间范围内处理,比如8点到9点之间处理,这个之外的时间范围就不要做类似心跳或者服务检测的处理了,对于业务侧来说,还是能够基本接受的,但是无论如何这不是一种最优解,而且对于索引的使用实在有悖于中间件服务使用的初衷。
  经过进一步的沟通,我们再次挖掘需求,对于里面的表数据是如何处理的,业务同学说其实表中的数据如果时间长了之后是需要考虑数据清理的,所以按照这种模式,这个需求的就基本清晰了,和初始需求有比较大的差异。
  到了这里需求的方向其实就有了大的转折,这个表按照目前的需求其实使用日志表的模式要更好一些,比如表中的数据是按照如下的列表情况存储,以日期表为维度进行存储。
  如果需要按照T+1的模式去处理未完成的数据,整个复杂度只针对某一天的表执行索引扫描,不会对其他的表产生关联影响,而如果按照日期为单表存储,整个事情的自由度就更大了,按照state或者是pid的维度进行查询,效果都是可以接受的。
  所以最后经过讨论和评估,其实没有必要在中间件环境中进行该类业务的处理,相比而言,性价比也不高。而基于中间件的服务承接的是偏核心的业务,对于性能和负载的影响较为敏感,如果稀里糊涂就执行了,其实后面会带来一些其他的隐患。
  通过这样一个看起来简单的需求的沟通和挖掘,最后产生了不同的解决方案,对于业务侧来说还是比较满意的,至少能够超出他们的基本需求期望实现,而且很多细节的工作也不需要更多的人工参与和后期讨论,大大减少了沟通的边际成本。
  以上仅是一个需求的讨论过程,不代表方案是最优的,仅供参考。
  点在看,让更多人看到

吉林一爸爸拔罐被女儿看到,女儿用笔给爸爸纹身,卡通味满满近日,在吉林长春,有网友发布了一段爸爸拔罐后被女儿看到,女儿贴心给爸爸纹身的视频,引发了诸多网友们的关注。画面显示,一位爸爸拔罐完回来躺在沙发上休息,刚好被女儿看到了身上的痕迹。于机智!湖北一屋内电线起火大人毫无察觉,小男孩上演教科书式灭火近日,在湖北黄石,有网友发布了一段在某商铺中电线突然起了火,而大人居然丝毫都没有察觉的视频,引发了诸多网友们的关注。画面显示,当天在黄石某商铺,一个小男孩正在店铺里面玩电脑,家里的绝了!重庆3男子到派出所调解,结果职业病犯了修起了空调近日,在重庆,有网友发布了三个男子到派出所进行调解,结果职业病犯了的视频,引发了诸多网友们的关注。画面显示,当天,三名男子因为一些纠纷来到了派出所进行调解,正在调解的时候,其中一名四川一女子商场上厕所遇变态男,冷静拍下全过程趴地上偷窥近日,在四川,有网友发布了一段女子去商场上厕所,却遇到变态男偷窥的视频,引发了诸多网友们的关注。画面显示,当天在四川,一名女子正在逛商场的时候突然想上厕所。于是就来到了商场厕所,由湖南一男子遭老婆偷袭又舍不得还手,无奈放狠话回家告诉丈母娘近日,在湖南郴州,有网友发布了一段一名男子被老婆偷袭,明明很生气,但是又舍不得还手的视频,引发了诸多网友们的关注。画面显示,当天在郴州,一名男子正坐着玩手机,没有注意到身后的老婆偷辽宁一女子为省水用洗衣机排出的水给老公洗澡!老公都洗爆皮了近日,在辽宁沈阳,有网友发布了一段老婆为了省水,让老公用洗衣机排出来的水洗澡的视频,引发了诸多网友的关注。画面显示,当天在沈阳某户人家内,一名男子在厕所吐槽自己的老婆。他说自己的老西安一农民工怕弄脏座椅坐地上,大爷认为劳动者脏的人才是脏的近日,在陕西西安,有网友发布了一段农民工怕自己把椅子弄脏,于是坐在地面上的视频,引发了诸多网友们的关注。画面显示,当天在西安某地铁上,上来了一位打扮非常朴素,戴着安全帽的农民工大哥江苏一男子进屋偷钱被发现,秒装问路与房主对话后淡定离开惯犯近日,在江苏南京,有网友发布了一段男子进屋偷钱把主人吵醒,立刻假装问路和房东对话和淡定离开的视频,引发了诸多网友们的关注。画面显示,当天在南京某户人家内,因为屋主人在午休的时候并没胡闹!云南一女子不扫码妄图闯入医院,扇医务人员耳光!结局舒适近日,在云南昭通,有网友发布了一段一名女子不扫码强行闯入医院,甚至还扇医务人员耳光的视频,引发了诸多网友们的关注。画面显示,当天在昭通,一名女子进入医院的时候并没有按照规定扫码,遭操碎了心!湖南一金毛外出溜达顺回邻居家南瓜这下不愁买菜了近日,在湖南娄底,有网友发布了一段金毛出去遛弯儿,顺便把邻居家南瓜带回来的视频,引发了诸多网友们的关注。画面显示,当天在娄底,一只小金毛出去玩的时候看到了邻居家的奶奶正在摘南瓜,于重庆一女子火锅中吃到老鼠尾巴,当事人要索赔1万,店家已报警近日,在重庆,有网友发布了一段一名男子陪女朋友去吃火锅,结果两人却在火锅里面吃到老鼠尾巴的视频,引发了诸多网友们的关注。画面显示,唐先生的女朋友想要吃火锅,于是唐先生便带着女朋友来
孩子的天赋在哪里铁的规律发现孩子的天赋书稿发布(7)1在孩子身上这是毫无疑问的铁律。天赋作为孩子特有的先天或者说基因条件所赋于的内在特质,存在于每一个孩子身上。每个人都具有一些自己独有的天赋潜能,每个人都儿子在幼儿园发生的事情,我这么做的,大家说说这样处理对不对?昨天下午,妻子忽然微信上跟我讲了一件事老师刚才告诉她,幼儿园里一个小女孩无缘无故的揪了儿子的耳朵,老师发现后及时进行了制止,并且对两人分别进行了询问,了解事情发生的前因后果。得知儿生个二胎,我就成罪人了?生个二胎,我就成罪人了?我家大宝是女儿,8岁的时候,二胎政策开放,我家生个二胎儿子,儿女双全,我娘家都是蛮高兴的,我姐是儿女双全,我妹也是,我家又是,我老妈嘚瑟的不行,走路都是飘的什么是父母爱是个动词母亲是婴儿第一个接触的人,也是第一个依赖的人,只有婴儿和母亲建立起联系,婴儿才会在往后的成长里与社会建立联系。母亲只有真正关爱孩子才会拥有母亲的技能,这种技能是指与孩子的迟到二十多年的父母爱1990年,冬月的第一天,蒋云香呱呱落地。一落地,她安安静静地,不哭不闹。颇有经验的接生婆,倒不慌,不紧不慢地用手指弹着她的右脚心,可打了几下也没动静,接生婆才有些着急了。右脚不行天堂的爸妈医生问道,家属是保大还是保小孩子妈妈说保小孩子爸爸说保大孩子妈妈说如果我死了你会不会找其他女孩子孩子爸爸说如果你敢死,我就敢找孩子妈妈说那我不死了孩子爸爸说真乖,这才是我的好媳妇说不想回忆的20212021即将挂上句号了,回顾这一年,留有太多的心酸和委屈,太多的不顺和无助,这都是他人不曾体会的。2021年从最初的一个人到两个人,身经怀孕的苦,忍受生育打针的痛,这一年把二十多年按月份给虎宝宝起名字一月琳熙瑾蓝端月绮菲林染屿瑞枫翊峻轻沐巍书玮二月祎若芷衿楠瑄璐槿芸瑶景铄琪琛霄若云峥炫琰三月栀梦沐玥岚兮悦晨桐月月铭津遥初瑜展弘苑璋四月鸢时孟夏朦胧如婳忻瑗禹恺昱珩思绦皓璟皓予五月孕期体重管理孕期孕妈们做了体重管理吗?下面我把一些经验分享给孕妈们,做一个参考。我是2020年1月中旬发现怀孕的,去医院做了相关检查,到社区建档案,我看了有关怀孕的书,和咨询了医生,制定一个孕一个人怎么度过孕期?老公不在身边,一个人度过孕期,心态最重要!从某种程度上来说,我认为孕期保持一个乐观开朗的心态比保证饮食营养更重要!首先,来说说孕期心态不好弊端1心态不好会导致食欲不振,肠胃吸收不好怀孕后,胎儿最怕的不是手机,而是孕妈常遇到的这几种致畸源辐射会导致胎儿畸形大多数孕妈,特别是第一次怀孕的孕妈,听之特别紧张。那辐射源到底来自哪些呢?我是一位二胎宝妈,所以在宝妈群里呆得比较久,我经常看到宝妈们一致认为,辐射源是来自以下的