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

大数据量实时统计排序分页查询(并发数较小时)的几点建议

  大数据量实时统计排序分页查询的瓶颈不是函数(count,sum等)执行,
  不是having, 也不是order by,甚至不是表join, 导致慢的原因就在于"数据量太大本身" 化整为零
  就是将表划分为M份相互独立的部分,可以是分表,也可以是不分表但冗余一个取模结果字段
  实际结果是不分表比分表更加灵活,只需稍加配置,就可以动态切分大表,随意更改M的大小。
  将1条慢sql(大于30秒)拆分成为N条查询速度巨快的sql(单条sql执行时间控制在20毫秒以内)
  然后再web应用中以适当的线程数去并发查询这些执行时间快的N条小sql再汇总结果 两步查询
  第一步查询中去并发执行这N条小sql, 只取排序字段和标识字段,其他字段一律丢弃
  汇总结果后定位出当前页面要显示的pageNum条数据,再进行第二步查询,取出页面上需要展示的所有字段 web应用自身计算与数据库计算的折中
  PS:这一点是至关重要的,其他几点都可以不看,这点是最关键的。慢慢解释一下:
  有三种方式统计所有的记录,
  a) 第一种方式是把数据库中所有记录(只取排序字段和标识字段并且不做任何sum,count having order by等操作)
  全部拉到web应用中,在web应用中完成所有的计算
  b) 第二种方式是把数据库中所有记录做sum count having等操作之后的所有行数拉到web应用中,在web应用中完成剩余计算
  c) 第三种方式是把数据库中所有记录做sum count having order by等操作之后把limit后的数据拉到web应用中,
  在web应用中对limit后的数据再计算
  显然,第一种方式 数据库什么活都不做只取数据 是不可行的。以lg_order_count_seller为例,1500万行,
  如果只算id, seller_id和order_count 这三个bigint类型,至少需要拉8*3*1500 0000 = 360000000=340M,
  拉到内存中之后存储需要8*4*15000000= 460M,这还不算List是的2的n次方这个特点和计算排序等的内存开销,
  不仅数据库与web应用机器IO扛不住,就是应用自身恐怕也要OOM了。
  第二种方式,所有记录做sum count having等操作之后,由于是group by seller_id的,总得数据量变为100万(就是卖家总数),
  这样子一来,共需要拉8*3*100 0000 = 23M,拉到内存之后,需要8*4*100 0000 = 30M, 再算上List是的2的n次方这个特点和
  计算排序等的内存开销也不会超过100M, IO的时间和内存开销勉强可以考虑接受。
  第三种方式,所有记录做sum count having order by等操作之后把limit后的数据拉到web应用中,因为做了limit,所以,
  数据量很小了,无论是IO还是内存开销都已经很小了。可以忽略。
  综合以上三种,第三种方式适用于页面的前n页和后n页,因为这个limit的数据量随着页数的增大而增大,
  当大到每个切分后的小表的数据量时就转为第二种方式了。
  第二种方式适用于页面的第[n+1, totaoPageNum-n]页。 切分成N条小sql后并行执行时排序不稳定性的解决办法
  ① 问题描述:
  优化之前,还是是一条大慢sql查询时,由于数据库排序是稳定排序,
  所以当两条记录排序字段值相同时他们在页面上的页码位置是固定的。
  优化之后,当并行执行这N条小sql时,由于无法控制这些小sql的先后执行顺序,
  导致在web应用中当两条记录的排序字段值相同时在页面上的页码位置是随机的。
  ② 解决办法:
  除了拉标识字段(seller_id)和排序字段(order_count_sum)之外,再取一个unique(id)的字段,当两条记录的排序字段值相同时,
  再用这个unique的字段(在卖家监控中这个字段是id)进行第二次排序.这样就解决了排序不稳定的问题。
  ③ 也许,看到这里会有疑问,为什么不用seller_id?seller_id也是唯一, 这样子不是少取id这个字段,减少IO了?
  seller_id虽然也是唯一,可以辅助排序,但是不要忘记数据库的排序规则是:
  如果两列的值相等,那么序号在前的排在前面,这里的序号就是主键(自动生成,autoincrement),
  如果用seller_id的话还是不能保证排序的稳定性,只能用主键id. 优先加载页面上的主要元素,然后再去异步加载次要元素,
  把数据库的连接,扫表,计算等资源优先让给用户关注的主要元素,次要元素可等主要元素加载完成之后再加载。
  反应在卖家监控页面中,查数据和查页页码的sql语句基本相同,是在竞争同一资源,
  所以,需要做一个策略,优先把资源让给查数,数据查完之后再去查页码。 限流
  由于多线程取数据并没有从本质上提高数据库性能,所以必须针对大数据量实时统计排序分页查询做限流
  我这里打个比方:食堂有6个窗口,物流团队吃饭要买6个菜,平均每买1个菜需要1分钟的时间,
  如果派我一个人去一个窗口买的话需要6分钟的时间
  假如派6个人分别去6个窗口买这6个菜,只需要1分钟的时间
  但是,如果除了物流团队,再来其他5个团队呢,也就是说6个团队每个团队买6个菜共买36个菜,
  这样子有的团队先买完,有的团队后买完,但平均时间还是6分钟。本质上没有变化。
  所以,对于特定的查询条件,必须进行限流。让每分钟至多有6个团队买菜,这样子能使得情况变得不至于太糟糕。 从根本上改变现状
  这一点从目前来看只能是展望了,比如mysql数据库换更为强大的oracle数据库,
  或更换InnoDb引擎为其他,或更换SATA硬盘为SSD … 从实践效果来看,优化后的效果是很明显的。
  相同的查询条件,原来一个页面查询时间由于超过60秒超时了,根据1-6点建议优化之后,查询时间变为2秒至3.5秒之间。

突发性耳聋3个月,可以选配助听器吗?为什么?突发性耳聋后3个月如果听力稳定了,聆听还是有障碍就可以验配助听器了,可以减缓听力下降的速度,保持言语识别能力的灵敏度,建议一定要到专业的验配中心验配。突发性耳聋简称暴聋或突聋,突发华为mate305g版本阉割了n1n3频段,影响大么?先说结论,在国内没影响,如果有出国需求有影响。如果要求高有出国学习工作旅行需求的话,对价格不敏感还是建议一步到位上全球频段mate30pro5g型号。n1的频谱范围为n1(上行19比特币还有多少没有挖掘出来?在中本聪2008年10月31日发布的长达9页的比特币白皮书论文里,明确规定了比特币的持有数量上限是2,100万枚。比特币之所以被称之为数字黄金,就是因为它的运行机制在大的逻辑上依旧电商运营和跨境电商,哪个发展前景好?电商行业,可能是过去10年里,让年轻人逆袭最多的行业之一。因为进入门槛相对低,机会多,抓住一个就能有好发展。即使在竞争愈发激烈的今天,依然能让更多的草根通过努力相对容易获得更高的收互联网经济是不是影响了实体经济?今天实体店死了,明天工厂的工人不能干了,慢慢的最基层的人都动不了了,大家都有力无下处了。紧接着我们的钱袋子都干,最后大老们就自己赚自己的钱去了,大家都死翘翘了。到那时是否国家养我们华为有什么黑科技?感谢您的阅读。华为有什么黑科技,先要说说黑科技是什么意思,黑科技泛指让人耳目一新的新技术新硬件新工艺新材料等,也可以在一个东西原有的基础上进行改造创新,使得它会变得更好。当然每个人石头科技预告年度双旗舰智能双刷洗地机自清洁扫拖机器人来了8月22日消息,石头科技在官微发表倒计时预告,宣布8月25日推出年度双旗舰产品。这两款新产品是智能双刷洗地机U10自清洁扫拖机器人G10系列,从名字来看前者的核心卖点是双刷,机器人性价比之王!漫步者(EDIFIER)声迈FitPods主动降噪耳机测评最近搬家了,通勤时间也变长了。在地铁上的时间一定要充分利用起来,听书听歌看视频,这样我能学到更多知识,偶尔累了就听听歌放松一下。不过,在这样嘈杂的环境里,一款降噪耳机必不可少。挑来条友们晚上好,能帮我推荐个3000元的手机吗?感谢您的阅读!条友们晚上好,能帮我推荐个3000元的手机吗?实际上,我们知道现代的手机一直以一个非常快的速度在发展。而我们所知道的现在的手机,它所拥有的优势确实会比较突出,我们所能5分钟知道git如何使用?(git入门常用命令)这里引用一下菜鸟教程对git的描述Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。我的理解git分为工作区,暂存区,本地仓库,远程仓库。workspac708km超长真续航,加速比Taycan快,25。19万起的阿尔法S,咋样?根据中汽协统计,2010年,我国新能源汽车一年的销量仅为4884辆,但是到了2021年,仅上半年的新能源汽车产销量就双双超过了120万辆。并且不少车企都宣布了在未来1530年间全面
同样6000元的预算,为什么大多数人买苹果手机,而不买国产旗舰机人们在购买手机前都会有一个大体的预算,比如大约会使用2000元4000元或者6000元购买手机,对于6000元预算的用户,为什么大多数人选择了购买苹果手机而不买国产旗舰型的手机?这铁了心要重回中国?国际巨头传来消息,这次目标可能又是华为近几年来,中国的智能手机市场一直都处于发展状态。除了华为一骑绝尘之外,还有小米OPPO和vivo等多个国际知名度较高的国产手机品牌。虽然在国际市场上这些品牌并没有相当突出的竞争力,简单几步教会你,如何在iPhone日历里添加中国节假日调休文章内已经有链接了,所以不要再私信我了,不是我不愿意发,是被屏蔽发不出去了。添加不了的条友,检查一下链接和日历的网络有没有打开。打开设置日历账户,点击添加账户添加账户选择添加已订阅想买一台55寸的电视,请用过的朋友推荐一款?现在的装修,都是越来越高档那么家用电器的选择上也不能太差了吧?特别是我们常看的电视机,选购的时候一定要注意。例如有个朋友问想买一台55寸的电视机,让大家给推荐一款那么在选购电视之前在洗地机如此内卷的现在,它是怎么让我一眼相中的?家有萌娃和萌宠后,地面卫生特别让我头疼,萌宠总是掉很多毛发,萌娃又喜欢在地上爬来爬去,所以,家里的地板一点要特别干净才行。在打扫房屋方面,我使用过很多武器,有传统的苕帚拖把,也有新我为什么说小米12Ultra才是今年旗舰手机中的影像天花板?最强主摄小米12Ultra将配备11。1英寸左右的超大底感光元件,首发索尼IMX800传感器。拥有5000万原生高像素,1。44um单像素尺寸,支持四合一输出1250万像素,合成2金龙汽车收到新能源车推广补贴6。26亿年销客车逾5万辆同比增16。3长江商报奔腾新闻记者方度1月19日晚间,金龙汽车(600686。SH)发布公告称,公司控股子公司厦门金龙联合汽车工业有限公司厦门金龙旅行车有限公司近日分别收到国家新能源汽车推广应用安装三星SSD980心得近期因工作原因,公司配发的笔记本无法满足使用需求,和领导报告后买了块固态硬盘准备装上。老电脑联想E580,还是机械硬盘,后买了三星ssd980nvmem。2,因为很多应用安装太麻烦微信官方要买的红包封面,都是骗局IT之家1月19日消息,据微信安全发布,要买的微信红包封面,都是骗局!一款好看的微信红包封面总是能让自己的红包显得更加与众不同,但是抢不到红包封面怎么办?很多人想去某些电商平台上去糖制成的可回收塑料面世据物理学家组织网17日报道,来自英国伯明翰大学和美国杜克大学的研究人员利用糖基原料而非石化衍生物,研制出了两种新的聚合物,它们拥有普通塑料的所有特质,但可降解和物理回收。其中一种聚我想给自己的店做推广,怎么做?您好,很高兴回答我想给自己的店做推广,怎么做?这个问题,以下是我的解答,希望对您有所帮助!推荐你上投媒网软文推广平台,各行业都有优质的媒体资源可推广,给你店铺带来最好的宣传,投媒网