十个常见的面试问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十个常见的面试问题相关的知识,希望对你有一定的参考价值。

参考技术A 问题一:“请你自我介绍一下。”

思路:1、这是面试的必考题目。2、介绍内容要与个人简历相一致。3、表述方式上尽量口语化。4、要切中要害,不谈无关、无用的内容。5、条理要清晰,层次要分明。6、事先最好以文字的形式写好背熟。

问题二:“谈谈你的家庭情况。”

思路:1、家庭状况对于了解应聘者的性格、观念、心态等有一定的作用,这是招聘单位问该问题的主要原因。2、简单地罗列家庭人口。3、宜强调温馨和睦的家庭氛围。4、宜强调父母对自己教育的重视。5、宜强调各位家庭成员的良好状况。6、宜强调家庭成员对自己工作的支持。7、宜强调自己对家庭的责任感。

问题三:“你有什么业余爱好?”

思路:1、业余爱好能在一定程度上反映应聘者的性格、观念、心态,这是招聘单位问该问题的主要原因。2、最好不要说自己没有业余爱好。3、不要说自己有那些庸俗的、令人感觉不好的爱好。4、最好不要说自己仅限于读书、听音乐、上网,否则可能令面试官怀疑应聘者性格孤僻。5、最好能有一些户外的业余爱好来“点缀”你的形象。

问题四:“你最崇拜谁?”

思路:1、最崇拜的人能在一定程度上反映应聘者的性格、观念、心态,这是面试官问该问题的主要原因。2、不宜说自己谁都不崇拜。3、不宜说崇拜自己。4、不宜说崇拜一个虚幻的、或是不知名的人。5、不宜说崇拜一个明显具有负面形象的人。6、所崇拜的人最好与自己所应聘的工作能“搭”上关系。7、最好说出自己所崇拜的人的哪些品质、哪些思想感染着自己、鼓舞着自己。

问题五:“你的座右铭是什么?”

思路:1、座右铭能在一定程度上反映应聘者的性格、观念、心态,这是面试官问这个问题的主要原因。2、不宜说那些易引起不好联想的座右铭。3、不宜说那些太抽象的座右铭。4、不宜说太长的座右铭。5、座右铭最好能反映出自己某种优秀品质。6、参考答案——“只为成功找方法,不为失败找借口。”

问题六:“谈谈你的缺点。”

思路:1、不宜说自己没缺点。2、不宜把那些明显的优点说成缺点。3、不宜说出严重影响所应聘工作的缺点。4、不宜说出令人不放心、不舒服的缺点。5、可以说出一些对于所应聘工作“无关紧要”的缺点,甚至是一些表面上看是缺点,从工作的角度看却是优点的缺点。

问题七:“谈一谈你的一次失败经历。”

思路:1、不宜说自己没有失败的经历。2、不宜把那些明显的成功说成是失败。3、不宜说出严重影响所应聘工作的失败经历。4、所谈经历的结果应是失败的。5、宜说明失败之前自己曾信心白倍、尽心尽力。6、说明仅仅是由于外在客观原因导致失败。7、失败后自己很快振作起来,以更加饱满的热情面对以后的工作。

问题八:“你为什么选择我们公司?”

思路:1、面试官试图从中了解你求职的动机、愿望以及对此项工作的态度。2、建议从行业、企业和岗位这三个角度来回答。3、参考答案——“我十分看好贵公司所在的行业,我认为贵公司十分重视人才,而且这项工作很适合我,相信自己一定能做好。”

问题九:“对这项工作,你有哪些可预见的困难?”

思路:1、不宜直接说出具体的困难,否则可能令对方怀疑应聘者不行。2、可以尝试迂回战术,说出应聘者对困难所持有的态度——“工作中出现一些困难是正常的,也是难免的,但是只要有坚韧不拔的毅力、良好的合作精神以及事前周密而充分的准备,任何困难都是可以克服的。”

问题十:“如果我录用你,你将怎样开展工作?”

思路:1、如果应聘者对于应聘的职位缺乏足够的了解,最好不要直接说出自己开展工作的具体办法,2、可以尝试采用迂回战术来回答,如“首先听取领导的指示和要求,然后就有关情况进行了解和熟悉,接下来制定一份近期的工作计划并报领导批准,最后根据计划开展工作。”

十个公司九个问之面试考点索引失效?

十个公司九个问之索引失效?

本期主要面试考点

面试官考点之什么情况下会索引失效?

面试官考点之简单说说你工作中遇到的索引失效场景?

以下索引失效的常见场景

我是肥哥,一名不专业的面试官!

我是囧囧,一名积极找工作的小菜鸟!


囧么肥事-胡说八道

验证准备

准备数据表,同时建立普通索引 idx_user_name

CREATE TABLE `t_user` (
  `id` int(11) NOT NULL,
  `user_name` varchar(32) CHARACTER DEFAULT NULL COMMENT 用户名,
  `address` varchar(255) CHARACTER DEFAULT NULL COMMENT 地址,
  `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 创建时间,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入1万条数据(注意:数据多些,mysql不走索引情况之一是数据量非常少,MySQL查询优化器认为全表扫描比使用索引更快,导致索引失效,explain检查是否使用索引时,发现无法走索引)

-- 创建存储过程,插入10000用户信息
CREATE PROCEDURE user_insert()
-- 定义存储过程开始
BEGIN
    -- 定义变量 i ,int 类型,默认值为 1
    DECLARE i INT DEFAULT 1;

    WHILE i <= 10000
        -- 定义循环内执行命令
        DO INSERT INTO t_user(id, user_name, address, create_time) VALUES(i, CONCAT(mayun, i), CONCAT(浙江杭州, i), now());
        SET i=i+1;
    END WHILE;

    COMMIT;
END;
-- 定义存储过程结束

-- 调用存储工程
CALL user_insert();

一、OR索引失效验证

好多人说where条件中使用 or ,那么索引一定失效,是否正确?

explain select * from t_user where user_name = mayun10 or user_name = mayun1000

explain select * from t_user where user_name = mayun10 or address = 浙江杭州12

alter table t_user add index idx_address (address)

验证总结

or 可能会导致索引失效,并非一定,这里涉及到MySQL index merge 技术。

or索引生效有哪些情况?

第一种 or两边连接的是同一个索引字段

第二种 or两边连接的是两个索引字段,即两个字段分别都建立了索引

二、LIKE通配符索引失效验证

一个最常见的查询场景,建立idx_user_name索引

select * from t_user where user_name like %mayun100%;

select * from t_user where user_name like mayun100%;

验证总结

like 通配符特性是可以左右开闭匹配查询

当左边开放使用 % 或者 _ 匹配的时候都不会走索引,会进行全表扫描

我们知道建立索引后,MySQL会建立一棵有序的B+Tree,索引树是有序的,索引列进行查询匹配时是从左到右进行匹配。使用 % 和 _ 匹配,这表示左边匹配值是不确定的。不确定,意味着充满可能,怎么比较?

当然只能一个一个的比较,那就相当于,全匹配了,全匹配在优化器看来,与其走索引树查询,再进行不断的回表操作,还不如直接进行全表扫描划算!

三、where中对索引列使用mysql的内置函数

alter table t_user add index idx_age(age);
explain select * from t_user where age = 80

explain select * from t_user where abs(age) = 80

验证总结

四、where中对索引列进行运算(如,+、-、*、/),一定失效

alter table t_user add index idx_age(age);
explain select * from t_user where age = 80;

explain select * from t_user where age + 5 = 80

五、类型不一致,隐式的类型转换,导致的索引失效

alter table t_user add index idx_user_name(user_name);

explain select * from t_user where user_name = mayun1;

修改数据,再次explain

update t_user set user_name = 100 where user_name = mayun1;
explain select * from t_user where user_name = 100;

user_name = 100 ,因为user_name 字段定义的是varchar,索引在where进行匹配时会先隐式调用 case() 函数进行类型转换 将匹配条件变成,user_name = 100

六、where语句中索引列使用了负向查询,可能会导致索引失效。

alter table t_user add index idx_age(age);
explain select * from t_user where age in (100, 50);

explain select * from t_user where age not in (100, 50);

七、索引字段可以为null,使用is null或is not null时,可能会导致索引失效

第一种情况,表结构规定允许user_name 字段可以为null

explain select * from t_user where user_name is null;

explain select * from t_user where user_name is not null;

第二种情况,表结构规定user_name 字段不可以为null

explain select * from t_user where user_name is null;

explain select * from t_user where user_name is not null;

八、隐式字符编码转换导致的索引失效

当两个表进行连接JOIN 时,如果两张表的字符编码不同,可能会导致索引失效。

这个索引失效场景尚未遇到,网上很多文章说会导致索引失效,查阅发现大量的博客说UTF8mb4字符集的表mb4与UTF8字符集的表utf8 关联会产生索引失效的问题,但是我根据大量博文所述操作,发现暂时还是无法复现,读者可自行查阅。

九、联合索引中,where中索引列违背最左匹配原则,一定会导致索引失效

alter table t_user add index idx_user_name_deposit(user_name, deposit);

explain select * from t_user where user_name like mayun86%

explain select * from t_user where user_name like mayun86% and deposit = 5620.26;

explain select * from t_user where deposit = 5620.26 and user_name like mayun86%;

explain select * from t_user where deposit = 5620.26;

验证总结

联合索引依据最左匹配原则建立索引树,在查询时依据联合索引顺序依次匹配索引值,查询时如果违背最左匹配原则,将导致索引失效。

假设建立索引 idx_a_b_c,相当于建立了 (a), (a,b), (a,b,c)三个索引

查询匹配时匹配顺序是 a b c 

查询时如果没有 a 字段筛选,那么索引将失效
select * from test where a=1 
select * from test where a=1 and b=2 
select * from test where a=1 and b=2 and c=3
select * from test where b=2 and c=3

联合索引如果要走索引,查询条件中必须要包含第一个索引,否则索引失效

select * from test where b=1 and a=1

select * from test where m=222 and a=1

这两条查询走索引的原因是什么?

最左前缀指的是查询时匹配索引列要按照联合索引创建的顺序,但是在书写时不需要严格按照联合索引创建的顺序,MySQL优化器会自动调整,所以上面两条查询索引有效!

十、MySQL优化器的最终选择,不走索引

explain select * from t_user where age > 59;

explain select * from t_user where age > 99;

验证总结

MySQL查询索引失效的情况有很多,即使其他情况都规避,但是在经过了优化器的确定查询方案的时候,依然可能索引失效。

优化器会考虑查询成本,来确认它认为的最佳方案来执行查询

当数据量较少,或者需要访问行很多的时候

优化器会认为走索引树来进行回表,还不如直接进行全表扫描的时候,优化器将会抛弃走索引树。


推荐MySQL相关休闲阅读

第一段,索引面试题推荐阅读一:【来自面试官一面MySQL索引的连续灵魂拷问】

第二段,索引面试题推荐阅读二:【来自面试官二面MySQL索引的连续灵魂拷问】

第三段,索引失效场景面试题推荐阅读:【面试官:说说你遇到的MySQL索引失效场景吧,你是如何解决的?】

第四段,查询缓存面试题推荐阅读:【面试官:什么场景下会导致MySQL缓存失效?生产环境到底要不要开启MySQL缓存?】

第五段,待更新?推荐休闲阅读:【囧么肥事】

更多精彩内容,欢迎关注微信公众号:囧么肥事 (或搜索:jiongmefeishi)

以上是关于十个常见的面试问题的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 面试的十个问题

面试的十个问题及回答

面试Python机器学习时,常见的十个面试题

程序员面试中的十个常见错误

常被问到的十个 Java 面试题

十个公司九个问之面试考点索引失效?