反省在北京某S2B2C电商小型公司面试时掉链子的问题
昨天,参与北京一家公司面试时,不知道为什么,错了很多题,这些题在该家公司之前已经被问很多次了,当天精神恍惚的没答上来或答错,被问到数据库优化和乐观锁的问题,首先我谈到了存储引擎底层的数据结构
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电商小型公司面试时掉链子的问题的更多相关文章
- 电商系统中SPU、SKU的区别
SPU = Standard Product Unit(标准产品单位) SPU是商品信息聚合的最小单位,是一组可复用.易检索的标准化信息的集合,该集合描述了一个产品的特性.SPU多见于后台商品的管理. ...
- 基于K-means Clustering聚类算法对电商商户进行级别划分(含Octave仿真)
在从事电商做频道运营时,每到关键时间节点,大促前,季度末等等,我们要做的一件事情就是品牌池打分,更新所有店铺的等级.例如,所以的商户分入SKA,KA,普通店铺,新店铺这4个级别,对于不同级别的商户,会 ...
- 【系统设计】不同分类的商品动态添加扩展属性的方法(WMS、小型电商)
在做公司WMS系统的时候,遇到了一个商品模块的设计问题,具体业务流程如下. 客户提供需要存放的商品清单,根据商品清单生成收货单给客户,然后生成入库单进行商品入库操作. 在生成这两个单之前首先要录入商品 ...
- 如何一步一步用DDD设计一个电商网站(六)—— 给购物车加点料,集成售价上下文
阅读目录 前言 如何在一个项目中实现多个上下文的业务 售价上下文与购买上下文的集成 结语 一.前言 前几篇已经实现了一个最简单的购买过程,这次开始往这个过程中增加一些东西.比如促销.会员价等,在我们的 ...
- 电商平台如何接入快递鸟电子面单API?
快递鸟是全球物流接口服务商,为电商 ERP.电商平台.仓储.清关公司提供物流跟踪.电子面单.智选物流.物流金融.在线下单等服务,解决电商的物流管理模块和金融模块.现就对快递鸟电子面单API做基本描述, ...
- java亿级流量电商详情页系统的大型高并发与高可用缓存架构实战视频教程
亿级流量电商详情页系统的大型高并发与高可用缓存架构实战 完整高清含源码,需要课程的联系QQ:2608609000 1[免费观看]课程介绍以及高并发高可用复杂系统中的缓存架构有哪些东西2[免费观看]基于 ...
- 【Tableau】电商广告投放的地域分析
分析师的职责是利用处理数据获取信息,提炼规律,帮助企业正确决策业务方向. 所以,一个好的分析师绝不能被数据所困,既要深入业务,理解业务,也要高瞻远瞩,以领导者的思维借助数据分析的辅助做出判断. [结构 ...
- Amazon电商数据分析——数据获取
最近一段时间主要重心在Amazon电商数据分析上,这是一个偏数据分析和可视化的项目.具体来说就是先获取Amazon的商品数据,数据清洗和持久化存储后作为我们自己的数据源.分析模块和可视化模块基于数据进 ...
- SAP CX Upscale Commerce : SAP全新推出的电商云平台
大家好,我是Andy Chen,是SAP成都研究院年轻的SAP CX Upscale Commerce (后面将会以Upscale简称)开发团队的一名产品经理.CX的全称是Customer Exper ...
随机推荐
- 用python3判断一个字符串 包含 中文
在python中一个汉字算一个字符,一个英文字母算一个字符 用 ord() 函数判断单个字符的unicode编码是否大于255即可. s = '我xx们的88工作和生rr活168' n = 0 for ...
- c++builder 解压缩
c++builder 解压缩 TZCompressionStream TZDecompressionStream #include <System.ZLib.hpp> void __ ...
- 运维自动化工具 Cobbler
简介: 关于操作系统安装方面的自动化,早前我们使用 RedHat 推出的 Kickstart 来批量安装操作系统,近年来 RedHat 又推出一个 Cobbler . Cobbler 使用 Pytho ...
- jQuery插件–jqueryflexselect下拉框自动提示
原理:用户在文本框中输入一个字符(或输入字符的首字母),然后利用ajax,从后台服务器中进行检索,组装后并返回到页面,页面通过javascript进行解析,在一个层里面显示出来. 类似的效果如下: & ...
- 用django框架开发一个B2C购物网站用户注册知识点总结2
一:用户部分: 用户注册: 用户注册序列化器: import re from django_redis import get_redis_connection from rest_framework ...
- Python实现阿里云短信推送
本篇文章是使用Python的Web框架Django提供发送短信接口供前端调用,Python版本2.7 阿里云入驻.申请短信服务.创建应用和模板等步骤请参考:阿里云短信服务入门 1.下载sdk 阿里云短 ...
- 编码总结,以及对BOM的理解
一.前言 在跨平台.跨操作系统或者跨区域之间,经常会涉及到编码的问题,因为前段时间在项目中,遇到了因为编码而产生乱码的问题,以前对编码也是一知半解,所以决定对编码有一个更为深入的了解,因此才有了这篇自 ...
- 解决VS2013中的控制台一闪而过的问题
修改项目配置,右键点击项目,在右键菜单中选择属性,然后在弹出的对话框左侧列表中中选择 “配置属性”-->“链接器”-->“系统”,然后在右侧的列表中, 在第一项”子系统“的值中选择”控制台 ...
- 9-queue
在C++中只要#include<queue>即可使用队列类,其中在面试或笔试中常用的成员函数如下(按照最常用到不常用的顺序) 1. push 2. pop 3. size 4. empty ...
- C++代码静态分析工具splint
1.引言 最近在项目中使用了静态程序分析工具PC-Lint, 体会到它在项目实施中带给开发人员的方便.PC-Lint是一款针对C/C++语言.windows平台的静态分析工具,FlexeLint是针对 ...