一个月面试近20家大中小厂,最后成功上岸

记录一下最近碰到的比较盲点的面试题。公司都不算大,所以只挑出一些技术性比较强的问题做记录。

PHP 基础相关:

  • PHP 编译的过程?对 opcode 有没有了解?从 opcode 的角度出发,能否优化一下 php 的速度?

  • PHP 变量底层是如何实现的?

  • Nginx 与 php-fpm 的通信过程?Nginx 监听端口和 socket 方式,有何区别? php-fpm 是怎么调用 PHP 代码的?

  • PHP 是如何连接 MySQL 的?连接池是如何实现的?

  • 谈下 PHP 和 Golang 的区别

  • Swoole 和 Go 中的协程有何区别?

  • Go 中 goruntine 的底层实现?go 中的协程是怎么通信的?

函数相关

array_key_exists () 和 in_array () 哪个性能较好?

编码相关:

  • 说一下你写的项目中的代码架构?(mvc、transformer、中间件等)

  • laravel 中常用设计模式(除了依赖注入和控制反转,还问到了策略模式和装饰者模式)

  • composer 自动加载机制(psr-4)

数据库(MySQL)

老生常谈的有:常见的优化手段、为什么使用 B+ 树存储、索引类型、隔离级别等。

  • 现在有联合索引 a,b,c, 使用 select * from table where c=1 and a=2 其中 a 和 c 分别都可以走索引吗?为什么

  • 只使用 MySQL 在高并发下的问题

  • MySQL 中使用递归

一道笔试题,感觉比较偏,当做补充知识了解即可

  • MySQL 执行慢怎么处理?explain 中 extra 字段中一般都会出现什么信息?如果在 explain 中看到 sql 已经走了索引,但是执行还是慢,会是什么原因?
using filesort、mmr、using index condition、using index、using where

走了索引还是慢的原因大概有以下几种:

当前 SQL 语句执行时 MySQL 正好在刷脏页

二级索引树上没有要查询的字段,需要回表(需要注意的是,MySQL 的优化器在需要回表,且回表扫描行数过大的时候,会停止使用索引,直接走主键索引,这时 extra 字段中不会出现走索引)可以用联合索引解决

数据表数据量过大,需要分库分表等物理优化
  • MySQL 中排它锁的加锁时机?能否手动加排它锁?

  • myisam 引擎和 innodb 存储数据方式有何不同?myisam 这种存储方式又有何优点?

  • MySQL 主从出现延迟要如何解决?

Redis 和 NoSQL

  • Redis 和 MongoDB 的区别

  • Redis 缓存雪崩、击穿、穿透的概念和解决方法

  • Redis 哨兵之间如何通信?

  • Redis 的连接数用完了怎么办?

  • 一致性哈希和哈希槽的区别?

  • 延时队列(这个是通过一个解决方案来问的,问题是延时发送短信或邮件如何实现)

  • 如何保证一个接口一个用户请求在一秒内只能请求一次?

用到了 redis 中的锁

操作系统

  • 线程和协程的区别

网络

  • session 共享

点关注,不迷路

好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。之前说过,PHP方面的技术点很多,也是因为太多了,实在是写不过来,写过来了大家也不会看的太多,所以我这里把它整理成了PDF和文档,如果有需要的可以

点击进入暗号: PHP+「平台」

在这里插入图片描述

在这里插入图片描述


更多学习内容可以访问【对标大厂】精品PHP架构师教程目录大全,只要你能看完保证薪资上升一个台阶(持续更新)

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的 PHP技术交流群

猜你喜欢

转载自blog.csdn.net/weixin_49163826/article/details/108664631