数据库集群查询达到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. PHPExcel--基本操作

    下面是PHPExcel的导入与导出的基本操作,也是最重要的两个操作. 生成文件: <?php require_once './Classes/PHPExcel.php'; $content = ...

  2. [nodejs] Error: unable to verify the first certificate

    Error: unable to verify the first certificate Solution npm config set registry http://registry.npmjs ...

  3. .NET委托和事件

    .net学习之委托和事件   1.什么是委托 通俗的说:委托就是一个能够存储符合某种格式(方法签名)的方法的指针的容器 上传图片: 2.委托语法 准备一个方法:string Hello(string ...

  4. Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'

    Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, ...

  5. DELPHI XE5

    一直觉得DELPHI7之后,如果写WINDOWS桌面应用,没什么变化. 一直在痛苦,为什么DELPHI提供的控件那么丑陋,透明等什么功能都做的那么差. 一直在郁闷,新装的DELPHI都不带DEMO. ...

  6. ASP.NET连接数据库时,提示“用户 'sa' 登录失败原因: 未与信任 SQL Server 连接相关联

    用ASP.NET连接数据库时,提示"用户 'sa' 登录失败.原因: 未与信任 SQL Server 连接相关联.".解决方法:首先检查是不是web.config文件内的用户名密码 ...

  7. 使用JDBC实现Oracle用户认证

    两天时间写的小品,以前的J2EE环境基本使用框架.现在使用JDBC配合Oracle存储过程模拟了一下用户注册和用户认证. 一.添加必须的jar包 需要JDBC连接Oracle的包和shiro-core ...

  8. #region Json转DataTable

    #region  Json转DataTable        private DataTable Json2Dtb(string json)        {            JavaScrip ...

  9. delphi强制WebBrowser控件使用指定版本显示网页

    function TFrmmain.WriteAppNameToReg:Boolean; var reg:TRegistry; sPath,sAppName:String; Sver:string; ...

  10. oracle杀用户建用户改密码脚本

    # ******************************** # * dba_oracle_awr.sh # ******************************** # Usage: ...