安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

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

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

中国发布教育部暂停中小学线上学科培训App备案拍照搜题类AP中国网12月13日讯(记者刘佳)近日,教育部就加强教育App管理推动与双减政策衔接再发通知。其中明确提出,暂停中小学线上学科类培训App的备案工作,不再受理学前线上培训App备……大数据量实时统计排序分页查询(并发数较小时)的几点建议大数据量实时统计排序分页查询的瓶颈不是函数(count,sum等)执行,不是having,也不是orderby,甚至不是表join,导致慢的原因就在于数据量太大本身化整为……鸿蒙系统要想快速推广,提高市场占有率,你有啥好建议?我先来说一说,仅是抛砖引玉。我的手机是vivo,想抢华为nova8很久了,想着华为CPU配华为鸿蒙,哪是绝配,可是,抢了很多次都没有结果,可想而知,华为被人制裁有多憋屈。……长安汽车董秘回复2021年,长安新能源销售突破10万辆,同比长安汽车董秘:公司每年将销售收入的5投入到研发,十一五至今,已累计投入超过1100亿元。公司研发投入主要来自自有资金,感谢关注。投资者:请问公司旗下C385和阿维塔车型是……150小时长续航,满足少女心的粉色NANK南卡N2S蓝牙耳机前言现在的音乐发烧友都会开始将视线转移到无线蓝牙耳机身上,从现在的蓝牙发展技术来说,无线蓝牙耳机的硬件配置都慢慢趋于满配,为的是去弥补无线对信号传输的损耗。除此之外……12月28日,西班牙排除部分华为设备立陶宛却因遏华付出巨大代最近几年间,中国与美国以及部分西方国家的关系逐渐恶化,世界经济格局也因此发生了较大变化。在美国发动对中国的贸易战之前,中国与西方国家的关系虽然也会受到政治事件的影响,但整体仍然……资讯100补偿用户损失Multichain发布此前漏洞事件的财联社区块链日报(杭州,记者徐赐豪)讯跨链路由器协议Multichain近日发布了此前漏洞事件的调查报告,并公布了100补偿方案。根据该报告,共有7962个用户地址受到影……还在用自拍杆?你out啦!短视频时代应该升级为浩瀚卓越小Q稳以前很多小伙伴旅游的标配是手机自拍杆,来拍摄美照,记录旅游时的点点滴滴。现在vlog时代,已经不再仅仅局限于美照,开始拍摄视频、短视频了,都从朋友圈摄影师晋升为了朋友圈摄像师。……每人398元,云集一年收15亿元会员费,洗脱传销嫌疑后增速下营收130亿元云集创始人肖尚略原本是淘宝香水卖家,2003年,淘宝还在起步期,肖尚略就开了小也店,业内也管肖尚略叫小也。到2012年,小也香水以12的市场份额,成为淘宝香……21年真旗舰骁龙870推荐今年由于骁龙888的发热原因,骁龙870可以说是目前国内手机市场中,实用性最强、性价比最高的机型了,拥有出色的性能、功能配置,满足了绝大部分用户的日常需求,深意大众的喜爱,才能……新品简报品牌春潮,多品类震撼出新新春新品简报飞利浦专业音视频设备各品类系列开春热潮,接连推出相关智能机型设备,为现代化教育学习、商务会议、一线调度记录带来更优质高效的软硬件应用体验。飞利浦全新智慧……虚拟人展览展示,元宇宙时代率先落地的应用场景传媒虚拟人展览展示元宇宙时代率先落地的应用场景随着智能手机等硬件销量以及视频、游戏等流量的见顶,移动互联网也迎来了成熟化的阶段,行业亟需发掘新的增长空间。我们……
王思聪共享充电宝要是能成,我就吃翔!最后究竟是谁会被打脸?什么是跨境电商?跨境电商如何注册?XiaomiSound体验不只小爱,更是智能音箱关不掉的App弹窗广告集团企业目标管理与绩效考核全套方案linux怎么修改目录名?宁夏创业谷创新服务科技孵化器上榜年度国家级名单士兰微2022年营收目标100亿左右主要增长点是IPM模块等人话解释R。P。A数据机器人老牌手机厂家开始发猛力,请来吴京代言不够,还在洽谈谷爱凌PlosGenetics揭示新烟碱类和多杀菌素类等重要杀虫剂没了华为麒麟芯片,安卓手机性能榜,被高通屠了榜锋菲复盘重生版蔡崇信不惜一切代价交易得到詹姆斯我的小秘密夫妻离婚孩子两个怎么判如何给图片添加丁达尔光线长大意味着成熟作文龙船花花语早晚躲不过2020年我国出生率跌破1,创44年以来新低制定个人理财规划的步骤摩根大通万亿美元黄金空单是超级谎言快看,这些口红色号,女人怎么能控制自己不拥有呢?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利