一面
面试简单地问了些八股, MySQL事务的隔离级别,如何实现的,MVCC
redo log干什么用的,如何保证数据的持久化。
1、有下面两张表,user(用户表)和thread(帖子表),假设有100W用户,500W帖子,写一条SQL,
显示前十名发帖最多的用户的名字及帖子数量,并针对该语句指出如何设计合理的索引字段。
如何确认你写的sql会用到哪个索引,另外请说明下你写的SQL是否是最优解
表名 字段
user uid, username, password, create_time
thread tid, uid, title, content, create_time
2、innodb一次主键查询、普通索引查询、无索引查询的区别是什么?
3、请用尽可能少的代码实现一个函数,用于计算用户一个月共计交费多少港元。(代码请写的尽量清晰简洁,我们希望能够看到你的编码风格和习惯)
用户在富途的平台上进行交易,需要交平台使用费。平台使用费的梯度收费方案如下:
每月累计订单数 每笔订单(港元)
梯度1:1-5笔 => 30.00
梯度2:6-20笔 => 15.00
梯度3:21-50笔 => 10.00
梯度4:51笔及以上 => 1.00
假设一个用户,一个月交易了6笔订单,则在梯度1交费共计: 30港元*5=150港元,在梯度二交费:15港元,一共交费165港元。
4、假设给定两个int类型的有序数组A和有序数组B,并且每个数组中都可能存在重复的数字,现在要求给出一个算法判断A是否为B的子集(给出思路即可,不用写代码)
例如:
若A为【1, 1, 2, 3】,B为【1, 1, 1, 2, 2, 3】,则A为B的子集
若A为【1, 2, 2, 3】,B为【1, 1,2, 3, 3】,则A不为B的子集
5、假设现在需要让你实现一个限频的需求,限制任意一个登录用户任意5分钟内不能发帖超过10次,
请给出详细的技术方案。