昨天,参与北京一家公司面试时,不知道为什么,错了很多题,这些题在该家公司之前已经被问很多次了,当天精神恍惚的没答上来或答错,被问到数据库优化和乐观锁的问题,首先我谈到了存储引擎底层的数据结构

B树/B+树:

B树是红黑树的变种数据结构,红黑树是一种自平衡二叉查找树,有其 左右子树 按序排列的特点,左小右大的特点,红黑树我没有做过深入的研究,只是背住了特点,等过去这段时间好好研究一下

关于B树与B+树请查看园友的详细总结:https://www.cnblogs.com/George1994/p/7008732.html

谈到数据库优化,首先会想到索引,而数据库索引则用到了B树数据结构,因B树数据结构存在关键字,所以在全键名匹配方面,访问速度会非常快,但索引若使用不当也会造成数据库性能的损失。

mysql数据库:

myisam:采用锁表策略,不适用在高并发场景,由于内部采用B树数据结构,所以匹配搜索非常快

innodb:采用行锁策略,适合用在高并发场景,多线程竞争时,只锁定竞争那一行数据

1、面试官提问:在程序代码方面什么情况下会使索引失效?

其实这题我之前已经回答过很多次了,可能面试官提问的逻辑跟之前不太一样,我没有听明白,这题没答上来,其实在写sql时我们需要注意:

在使用innodb存储引擎时OR与索引不可同时存在,否则索引失去效果,会进行全表扫描

具体可以看这篇文章:http://www.cnblogs.com/yuerdongni/p/4255395.html

另外使用 like 也会造成全表扫描

2、面试官提问:在基于你博客中的高并发乐观锁方案上,如果发生网络堵塞导致最终version不一致怎么办?

这道题我一开始回答的是从流量控制方面避免这种事情发生,后来想了想,我当时没能理解他的问题,现在也没怎么理解

实现乐观锁即CAS原理,假设下单减库存场景,先获取版本号,然后走业务逻辑,最终提交时比对一下版本号是否一致,他是不是说的这个时候网络阻塞,如果这个地方没能成功的从数据库取出版本号,只要不设置默认值,应该会抛出连接异常,在上游拦截处理美化之后提醒用户下单失败。

3、面试官提问:抢红包时如果因为用户并发量过大,出现了数据不一致怎么办

这个问题我可能回答的答案他并不满意,在我之前做的几种方案中已经解决了这个问题,如果真的要说百万级,这个流量非常恐怖,我当时提到了使用消息队列来削峰,延时处理,用户操作之后不会立即返回结果,只是告诉用户参与成功,用户可以到个人中心看进度,等消息队列消费之后更改状态,不过看面试官反应应该回答的不是他想要的,这个希望园友帮我出出主意

另外因为学历问题最近几天确实很郁闷,回忆起这家公司的笔试题,我错了两三道,还都是我之前答过的,也有一些的确我没有关注到的知识点,加油吧,希望这个城市能给我一些机会。

反省在北京某S2B2C电商小型公司面试时掉链子的问题的更多相关文章

  1. 电商系统中SPU、SKU的区别

    SPU = Standard Product Unit(标准产品单位) SPU是商品信息聚合的最小单位,是一组可复用.易检索的标准化信息的集合,该集合描述了一个产品的特性.SPU多见于后台商品的管理. ...

  2. 基于K-means Clustering聚类算法对电商商户进行级别划分(含Octave仿真)

    在从事电商做频道运营时,每到关键时间节点,大促前,季度末等等,我们要做的一件事情就是品牌池打分,更新所有店铺的等级.例如,所以的商户分入SKA,KA,普通店铺,新店铺这4个级别,对于不同级别的商户,会 ...

  3. 【系统设计】不同分类的商品动态添加扩展属性的方法(WMS、小型电商)

    在做公司WMS系统的时候,遇到了一个商品模块的设计问题,具体业务流程如下. 客户提供需要存放的商品清单,根据商品清单生成收货单给客户,然后生成入库单进行商品入库操作. 在生成这两个单之前首先要录入商品 ...

  4. 如何一步一步用DDD设计一个电商网站(六)—— 给购物车加点料,集成售价上下文

    阅读目录 前言 如何在一个项目中实现多个上下文的业务 售价上下文与购买上下文的集成 结语 一.前言 前几篇已经实现了一个最简单的购买过程,这次开始往这个过程中增加一些东西.比如促销.会员价等,在我们的 ...

  5. 电商平台如何接入快递鸟电子面单API?

    快递鸟是全球物流接口服务商,为电商 ERP.电商平台.仓储.清关公司提供物流跟踪.电子面单.智选物流.物流金融.在线下单等服务,解决电商的物流管理模块和金融模块.现就对快递鸟电子面单API做基本描述, ...

  6. java亿级流量电商详情页系统的大型高并发与高可用缓存架构实战视频教程

    亿级流量电商详情页系统的大型高并发与高可用缓存架构实战 完整高清含源码,需要课程的联系QQ:2608609000 1[免费观看]课程介绍以及高并发高可用复杂系统中的缓存架构有哪些东西2[免费观看]基于 ...

  7. 【Tableau】电商广告投放的地域分析

    分析师的职责是利用处理数据获取信息,提炼规律,帮助企业正确决策业务方向. 所以,一个好的分析师绝不能被数据所困,既要深入业务,理解业务,也要高瞻远瞩,以领导者的思维借助数据分析的辅助做出判断. [结构 ...

  8. Amazon电商数据分析——数据获取

    最近一段时间主要重心在Amazon电商数据分析上,这是一个偏数据分析和可视化的项目.具体来说就是先获取Amazon的商品数据,数据清洗和持久化存储后作为我们自己的数据源.分析模块和可视化模块基于数据进 ...

  9. SAP CX Upscale Commerce : SAP全新推出的电商云平台

    大家好,我是Andy Chen,是SAP成都研究院年轻的SAP CX Upscale Commerce (后面将会以Upscale简称)开发团队的一名产品经理.CX的全称是Customer Exper ...

随机推荐

  1. JSP显示错误信息中四个范围来保存变量

    JSP中提供了四个范围来保存变量,分别是page,request,session,以及application 其中page范围只在当前页面有效,离开当前页面就失效了,这个肯定不行 request范围在 ...

  2. Python基础学习九 数据库备份

    class BakDb(object): def __init__(self,ip,username,passwd,port=3306,path=r'C:\Users\BJQT\Desktop\dat ...

  3. Ryu控制器学习

    Ryu 在Mininet环境下实现Ryu为控制器控制ARP报文的实验中学习了Ryu相关的知识,记录如下 官方文档:http://ryu.readthedocs.io/en/latest/getting ...

  4. eclipse Oxygen 4.7 + pydev

    pydev 官网  安装手册 PyDev requires Java 8 and Eclipse 4.6 (Neon) in order to run and only supports Python ...

  5. split files test

    python split_upload.py   /root/github/python/s3_test/test.txt    dbelt      dumps python download_to ...

  6. Android开发实战之拥有Material Design风格的折叠布局

    关于折叠布局,也许你并不陌生,最新版的陌陌,或者一些其他的社交APP都有一个折叠布局.折叠布局,让我们的APP更加具有交互性,同时也更加美观,先来展示一下效果图: 这是我个人做的一个APP主界面,可以 ...

  7. Python 爬虫之 Scrapy 分布式原理以及部署

    Scrapy分布式原理 关于Scrapy工作流程 Scrapy单机架构 上图的架构其实就是一种单机架构,只在本机维护一个爬取队列,Scheduler进行调度,而要实现多态服务器共同爬取数据关键就是共享 ...

  8. RedHat Linux设置yum软件源为本地ISO

    先挂载ISO到某个目录下(如我的:/media/RHEL_6.0 x86_64 Disc 1) # mount –o loop rhel-server-6.4-x86_64-dvd.iso /medi ...

  9. cocos2dx 触摸屏的使用

    只要继承与CCLayer的类都可以实现触摸功能.CCLayer类的触摸事件的一些接口如下: // 单点触碰 virtual bool ccTouchBegan(CCTouch *pTouch, CCE ...

  10. Python学习笔记_使用openpyxl操作Excel,在同一个文件里复制某一个sheet

    应用场景:定制一个Excel模板文件,其中定义了一个模板Sheet,以此模板文件里的模板sheet为样例,制作报表,里面有不止一个模板样例Sheet 一.软件环境: 1.OS:Win10 64位 2. ...