数据库集群查询达到10w/s,更新操作5k/s,正常!
  应用并发连接达到历史高峰4倍,正常!
  业务平稳运行,正常!

  永辉微店527大促,圆满成功!这标志着平民软件数据库工程师、accenture咨询实施专家、SAP支持人员、永辉研发及其他工作人员连续数月的调优工作,让永辉微店的系统容量提升到了一个新的高度。
  永辉微店是典型的O2O电商,其商品都是来自永辉超市的门店,而且生鲜类商品的价格随着门店不同、日期不同、优惠力度不同而每隔几个小时就会发生变化。因此单笔订单的复杂程度要超过一般传统电商。
  527大促前期,根据多方人员评估,系统容量无法满足促销当天需求,其中一个核心瓶颈就是数据库无法承担应用系统的高并发压力。此时永辉超市通过天玑科技(杭州平民软件的母公司)邀请我们帮助解决数据层问题。
  平民软件拥有业界一流的数据库专家,其在数据层的调优实践非常丰富。数据层的调优包括但不限于以下几个部分
1、参数调优
2、SQL优化
3、硬件资源(CPU、内存、磁盘、网络)性能瓶颈定位
4、应用层与数据层交互的合理性诊断

  在确认和解决了上述四个方面的问题之后,

首先,使用官方版本的MySQL5.6,发现系统的CPU一直在百分之百,其中内核态占了80%以上的CPU。考虑到系统的并发性高,过多的连接,会导致MySQL创建过多线程,进而导致数据库系统所在操作系统,频繁发生上下文切换,导致系统性能较低。

其次,我们测试了带线程池功能的Percona5.6。经测试,验证可以通过设置线程的数量,来降低CPU的利用率,但是相应的TPS也大幅降低。提高线程的数量,就会和MySQL5.6官方版本的效果一样,CPU占有率接近100%。

最后,通过详细分析了在大并发情况下,数据库系统性能下降的问题,我们决定测试平民软件的产品OneSQL。测试之后,效果完全满足客户的预期,所以才有了文章一开头提到的527大促成功。

  为什么OneSQL在大并发的电商系统中,能有如此优异的表现?希望下面的介绍能让你明白他的工作原理。

  OneSQL源起于电商,是目前最优秀的为电商平台打造的MySQL数据库分支。OneSQL独家的多队列线程池护航你的电商业务,让你的业务系统能力提升几倍甚至10倍。

  为什么多队列线程池能够有这样的效果?今天我试着以通俗的方式向大家解释。我们把数据库比作是四车道高速公路。数据库上的负载比作是各种车辆

1、大卡车跑的慢,对应于数据库中的大表统计查询、关联查询
2、小轿车跑的快,对应于数据库中的自动提交事务
3、大客车速度介于大卡车和小轿车之间,对应于数据库中的显式事务
4、摩托车速度最快,对应于数据库中的简单查询  

  在电商系统中线上业务通常由小轿车、大客车和摩托车对应的查询组成,一些后台统计类业务通常是大卡车对应的查询。为了高速路的顺畅,防止大卡车占据所有车道,影响其他类型的车辆运行,必须将不同类型的车安放在不同的车道。

  OneSQL借鉴了相同的思路,把不同类型的SQL放入到不同的队列中,有效保证了页面访问、交易创建、库存处理等环节都能按照最佳比例执行,减少相互干扰,使数据库系统的性能在电商环境下,甚至有10倍以上的提升。

  OneSQL作为高性能的MySQL分支版本,也保证了对官方版本的绝对兼容。用户可以在秒级之间自由切换官方版本和平民软件的版本。如果想在已有的系统中体验OneSQL,无需进行数据迁移,只要在平民软件官方网站中找到对应的版本(目前支持5.6),使用OneSQL的二进制文件mysqld替换官方版本的mysqld即可。如果想要回退到官方版本,也只需进行二进制文件替换。

  另外OneSQL在秒杀、日志异步刷新、主从同步速度提升方面均有优化,如有兴趣请访问www.onexsoft.com

如有任何疑问,请联系onesoft007

OneSQL助力永辉超市大卖特卖的更多相关文章

  1. 《马哥出品高薪linux运维教程》wingkeung学习笔记-linux基础入门课程

    计算机原理概念: 1.CPU和内存中的存储单元通信线路称为总线(BUS),总线是被指令和数据复用的,所以也称为前端总线. 2.计算机中计算频率的时间标准即晶体振荡器原理,精确计算时间长度,根据相同的时 ...

  2. 【转载】COM 组件设计与应用(十七)——持续性

    原文:http://vckbase.com/index.php/wv/1264.html 一.前言 我们写程序,经常需要实现这样的需求: 例一.程序运行产生一个窗口,用户关闭的时候需要记录窗口的位置, ...

  3. IBM新合作伙伴计划助力企业转型升级

        IBM作为老牌企业,一直在引领者技术方面的变革.当IBM再一次从自我革新开始,期望能够更快的将认知计算和云推广给自己的合作伙伴和用户们,以帮助他们在新的转型期内,能够快人一步.         ...

  4. AI种黄桃AI卖黄桃 阿里巴巴推进一站式政务服务

    7月11日,武汉城市峰会期间,武汉.枣阳.荆门等多个城市发布了同阿里巴巴的最新合作.这些合作包括用人工智能改善武汉交通拥堵.降低枣阳黄桃种植成本.提升荆门城市治理和市民服务水平等.阿里云.蚂蚁金服.高 ...

  5. 阿里云的重大战略调整,“被集成”成核心,发布SaaS加速器助力企业成长

    摘要: 阿里云战略调整,“被集成”成为生态战略,讲讲即将“退居幕后”的阿里云. 阿里云近期调整动作巨大,阿里云新任总裁张剑锋(花名,行颠)上任后充分体现其创新和自我探索不断求“变”的阿里特性.期间,达 ...

  6. 【高并发】Redis如何助力高并发秒杀系统,看完这篇我彻底懂了!!

    写在前面 之前,我们在<[高并发]高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!>一文中,详细讲解了高并发秒杀系统的架构设计,其中,我们介绍了可以使用Redis存储秒杀商品的库存数量.很 ...

  7. 如何一步一步用DDD设计一个电商网站(四)—— 把商品卖给用户

    阅读目录 前言 怎么卖 领域服务的使用 回到现实 结语 一.前言 上篇中我们讲述了“把商品卖给用户”中的商品和用户的初步设计.现在把剩余的“卖”这个动作给做了.这里提醒一下,正常情况下,我们的每一步业 ...

  8. BPM助力企业数字化转型

    自九十年代末,流程管理开始引入国内,至今已经有20多年的历史了,由最初的部门级应用向企业级应用转变,大家的认知也经历了一系列的发展变化.不同阶段的信息化水平对企业的流程以及BPM平台也提出了不同的需求 ...

  9. 2015 Autodesk 开发者日( DevDays)和 助力开发周火热报名中

    Autodesk 软件(中国)有限公司 ADN 市场部真诚地邀请您参加我们一年一度的 "Autodesk 开发者日"(简称 DevDays),以及第一次随同开发者日举办的" ...

随机推荐

  1. github 删除仓库 repository

    1.点开想要删除的仓库 2点击setting 3.拉到最下面 4.点击 Delete this repository 5.输入想删除仓库的名字 点击

  2. node 异步编程

    node 异步编程 我了解到的node异步编程可分成: 1.回调函数 2.pub/sub模式(发布/订阅模式) 3.promise 4.generator 5.async await 一.直接回调函数 ...

  3. 关于缺少nvToolsExt64_1.lib时的PhysX的处理

    我本人之所以缺少这个文件是因为我的PhysX如果你的PhysX是从UE4源代码中提取的,那么可能会出现如下错误,提示找不到nvToolsExt64_1.lib(本机是64bit的操作系统) 那就执行u ...

  4. xib加载的两种方式

      •Xib文件的加载 Ø方法1 NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@"AppView" owner:nil ...

  5. oracle表分区、表分析及oracle数据泵文件导入导出开心版

    1.先说oracle表分区是什么吧,这样吧我们来举个桃子,栗子太小,我们就不举了,我们来举个桃子. 你有500万份文件,你要把他存在磁盘上,好嘛,我们就一个文件夹,500万分文件在那儿杵着,我们想找到 ...

  6. 剑指offer——树的子结构 (JAVA代码)

    版权声明:本文为博主原创文章,未经博主允许不得转载. 题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构). 解题思路: 首先看牛客网给出的测试用例: ...

  7. MVC2,MVC3,MVC4和MVC5的不同

    现在MVC的技术日趋成熟,面对着不同版本的MVC大家不免有所迷惑 -- 它们之间有什么不同呢?下面我把我搜集的信息汇总一下,以便大家能更好的认识不同版本MVC的功能,也便于自己查阅. View Eng ...

  8. Tempter of the Bone

    Description The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he ...

  9. js 中实现页面跳转的方法(window.location和window.open的区别)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  10. iOS代码汉字转拼音

    NSString *hanziText = @"今天天气不错"; if ([hanziText length]) { NSMutableString *ms = [[NSMutab ...