京东给 offer 了,月薪没涨,年终多了 5 个月![面试题]
大家好,我是君哥。
最近一个朋友收到京东 offer,薪资涨幅达到 30%。说实话,在现在大环境不好的情况下,这个涨幅很给力了,要知道不少人换工作平薪甚至降薪。
本来是一件很高兴的事情,但朋友心里有点忐忑。
朋友目前薪资 30k,公司年终 3 个月,一般能给满。京东给的薪资也是 30k,但是年终是 8 个月,这么算年包的涨幅确实达到 30%。
可是年终 8 个月,这个到底能不能给满,不太能确定。我也帮他问几个内部的朋友,大家倒是说一般能给满。京东这几年工资上升真的是很快,也就两年,工资涨了好几次,年终涨到了 8 个月。这对于老员工的确是好事,大家月薪没降,年终多了,妥妥的涨薪啊。但对于新人就不太友好了,我认识好几个朋友,新入职,年薪给的都不低,但是一平均到 20 个月,月薪一下子就降下来了。比如年包 60w,别的公司可能月薪 40k,但京东月薪只有 30k。
新人担心的问题几乎都一样:
1.年终到底能拿到几个月;
2.会不会因为干的不好,领导给的绩效差,拿的很少甚至拿不到;
3.中间离职的话,年终会按当年工作几个月这样的比例兑现吗;
4.裁员的话 ,除了 N+1,年终是否也能给补上。
确实,打工人挣点钱太不容易了,又要加班又要通宵的。工资一大部分放到年终,带来的不确定因素太多了。
下面,分享一道京东面试题:MySQL 内存表和临时表有什么区别呢?
1.概念
临时表用来给复杂查询保存中间结果,分为内部临时表和外部临时表。
内部临时表:MySQL 内部生成,比如 union 语句、group by 语句可以保存中间结果; 外部临时表:由客户端创建,SQL 语法:CREATE TEMPORARY TABLE。
内存表是指使用 Memory 存储引擎的表,创建语句如下图:
createtable test_memory(`id`int, `a`VARCHAR(20) DEFAULTNULL, PRIMARY KEY (`id`)) engine=Memory;
内存表可以给所有客户端看到,客户端连接关闭后不影响内存表。但如果 MySQL 重启服务,内存表的数据会丢失,表结构还在。
可以看到,临时表也可以是内存表。
2.生命周期
临时表是会话级别的,客户端连接关闭后,临时表自动删除。同时,会话之间的临时表是相互隔离的,不同会话可以创建相同名称的临时表。
内存表则不受会话的影响,只有使用 drop 才能删除掉。
3.存储
临时表可以使用各种存储引擎,比如 InnoDB、MyISAM 或者 MEMORY。创建时使用 ENGINE = xxx 来指定。如果临时表使用的存储引擎是 MEMORY(内存临时表),则会受下面参数限制:
tmp_table_size:临时表的最大内存值; max_heap_table_size:临时表的最大堆内存值,主要用来计算临时表的最大行数。
内存临时表的内存不能超过上面两个参数最小值的,如果超出,则会转化成磁盘临时表,查询效率下降。
内存表的数据存储在内存中。如果服务重启,或者内存不足,数据会丢失。
4.索引方式
内存表默认使用 hash 索引,不支持范围扫描或排序。
临时表则根据选择的存储引擎,支持的索引类型不同。如果选择 Innodb,则支持 B+ 树索引,支持事务,支持行级锁。
5.使用场景
内存表主要用于数据量较小、需要快速访问、允许数据丢失的场景。
临时表则用于单个会话中需要保存临时结果,会话结束可以自动清理的场景。比如 union、group by 语句。
下面看一下 union 语句执行过程,测试 SQL 如下: 先创建两个表:
CREATETABLE test_temp1(`id`INT, `a`VARCHAR(20) DEFAULTNULL, PRIMARY KEY (`id`)) ENGINE=INNODB;
CREATETABLE test_temp2(`id`INT, `a`VARCHAR(20) DEFAULTNULL, PRIMARY KEY (`id`)) ENGINE=INNODB;
然后执行查询语句:
SELECT * FROM test_temp1 UNIONSELECT * FROM test_temp2;
从执行计划 Extra 可以看出,查询语句用到了临时表。
这个语句执行过程如下:
1.创建一个内存临时表,这个临时表有 2 个字段,id 和 a,其中 id 为主键;
2.执行第一个子查询,获取 test_temp1 的所有记录,放到临时表中;
3.执行第二个子查询,获取 test_temp2 表的所有记录,依次插入临时表中,如果有主键冲突,则失败,继续插入下一条;
4.将临时表中数据作为结果集返回;
5.删除临时表。
6.总结
下面总结内存表和临时表的区别:
感谢阅读,如果对你有帮助,请点赞和在看。欢迎加我微信:zhujinjun86。
号内回复 seata,下载《阿里分布式中间件Seata从入门到精通》
号内回复 beijing,下载我总结的北京上百家知名科技公司
号内回复 aqs,下载《40张图精通Java AQS》