面试题回顾&&分享(一)

一、mysql的四种隔离级别

  1. 未提交读(READ UNCOMMITTED)。事物中的修改,即使没有提交,对其他事务也都是可见的。事务可以读取未提交的数据,也称为脏读(Dirty Read)。
  2. 提交读(READ COMMITTED)。一个事务开始,只能看见已提交的事务所做的修改,也叫不可重复读(nonrepeatable)。
  3. 可重复读(REPEATABLE READ)。该级别解决了脏读的问题,并且保证了在同一事物中多次读取同样的记录结果是一致的。但是,该级别还是无法解决幻读(Phantom Read)的问题。可重复读是mysql默认事务隔离级别
  4. SERIALIZABLE(可串行化)。最高隔离级别,通过强制事务串行执行,避免了幻读的问题。简单来说,就是在读取的每一行数据上都加锁,所以可能导致大量的超时和锁争用的问题。

回答了脏读、不可重复读、幻读,概念搞混了。

答案来自书籍高性能mysql第三版

二、redis10万条中读取一条数据的时间复杂度是a,100万条中读取一条数据的时间复杂度是b,a和b的关系

大致是这个意思,希望有大佬给个解释

三、rabbitmq如何实现消息持久化

回答了在声明队列跟声明消息的时候可以设置一个参数,查了一下,durable=true就可以了

四、rabbitmq消费者在消费消息时死机,消息未处理,但是消息丢失了,怎么处理这个情况

回答了rabbitmq是通过ack机制,默认是自动ack,只要改为在消息处理完之后手动ack就可以了

详细的可以网上自行搜一下,都有 https://www.jianshu.com/p/19e0927315da 

五、for和foreach哪个快,为什么

脱口而出for,回答不上来为什么。面试官告诉我其实是foreach,因为for每次多执行比较和I++

网上找到一篇,感觉还不错 https://blog.csdn.net/bk_guo/article/details/73322691/

六、读取4t大小的单文件

应该是考察linux方面的吧,面试官的意思我没明白,也不知道怎么处理

七、浏览器禁用了cookie,session能否读取,为什么

我的回答是不能,PHP通过浏览器携带的cookie中的session_id获取相信的session信息,如果浏览器禁用了cookie就不能找到相匹配的session文件

附带一篇相关文章 https://blog.csdn.net/w1229748769/article/details/75244389

八、浏览器发送http请求到php返回结果的全过程

这个问题我回答了比较简单了,浏览器发送请求,nginx接收请求,通过监听端口发给fpm,然后php处理......

实际上没有这么简单,中间少了很多详细部分,也错了,这个问题经常碰到,建议详细了解

九、ipv4地址存什么类型最省空间,通过什么方式处理,原理是什么

回答int类型,通过php自带函数ip2long,原理答不上来

文章链接 https://my.oschina.net/goal/blog/198049

十、有个定期生成的月报需求,怎么做

回答如果只要一个月报,就通过linux定时任务去做,生成了文件放服务器,需要的时候再下载或者读取,如果是很多,就扔给消息队列做

主要考察解决思路吧

十一、有一个方法,需要处理十几分钟的,设计一个对用户体验好的方案

用户触发方法,提交到消息队列,执行完毕后通过websocket提示用户已经完成

考察思路

 

面试官大部分问题还是针对简历上写的提问,但是自己遗忘的太多,回答的不怎么样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值