大白是如何优化mysql千万级数据查询的

转载自:https://mp.weixin.qq.com/s/ZghGRZ7WFvkUkU1LOiXPqg

image.png

  最近大白接手了一个商户订单查询系统,查询某个商户的订单记录时,有点慢,尤其是点分页的时候,越翻越慢。刚接手领导就让大白优化这玩意,说实话大白也忍受不了查询慢,于是开始着手优化这个订单查询功能。

  话说查询慢倒也正常,一个商户一天的订单少的有几万,多的有上百万的,这些商户也太挣钱了,扯远了,开始优化。数据库是mysql,版本5.7,查询按时间倒序排列,分页limit,查询条件都已加索引,商户只能查自己的数据。

  根据以上分析,结合大白的优化经验,优化查询千万条,按需查询第一条。当前的查询条件默认是按当天作为起止时间去查询,这个时候一个每天的订单量少至几万多至几百万不等,618的时候有的商户订单可能到千万大关。

  大白今天就不截图了,下面直接用文字表达我的两种优化思路。

  1.每个商户的订单按序号自增生成流水,类似自增的id。

  由于商户太多,不再借助数据库生成。大白使用单一微服务按商户号生成自增id,这个id是主键之外的候选键。大白为这个候选键加上索引,每次查询大白会根据上一次查询的最小id,并且根据最小id减去100的值筛选,进行范围查询,显然每次最多load出100条数据,分页展示10条或20条,比较轻松。

  这里再说下大白的微服务生成流水号,是借助ConcurrentHashMap和AtomicLong,按照商户号为key递增生成,实现比较容易。当然了借助分布式redis更简单安全可靠一些,因为大白那时还处在memcached时代,所以选择自己构建了一个微服务。这是大白之前的设计,现在是改造历史项目,大白这招并不适用,没有Mr.Right,只是看谁更fit一些。

  2.既然订单很多,不妨在分页的时候,缩小时间范围。

  查询慢是因为每次加载的数据太多,前台页面又需要分页,所以很多数据加载之后被无情废弃,白白浪费了系统资源。现在商户大多是按照当日时间来查询,分页的时候大白会取上一页时间最小值,并且最小时间减去5分钟的值去筛选,进行范围查询,显然每次只查询5分钟的数据压力要减轻很多,然后再分页展示10条或20条。

  这里需要注意,可能阈值5分钟需要按实际情况去调整。个别不够10条的,大白都做了2次查询,继续向下injust。这里大白想表达的除了缩小时间范围,其实查询拆分也是常见的做法,以目前的数据库服务查询性能及网络带宽,分多次查询根本不影响你的性能。

  总结,许多优化不仅可以从问题本身出发,还可以等量替换解决。大白能力有限,欢迎批评指正。

这个大白的技术还可以哈,感觉不错给这个大白加个关注,阅读更多文档吧。


码农小麦
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342