PHP的中高级面试题与应答

分类: 互联网 > 面试题

1、mysql事务隔离级别,说下你对事务的隔离性的理解?

答:

    mysql事务隔离级别从低到高分别是:未提交读、已提交读、可重复读、串行。

    未提交读:允许读取未提交的数据变更,但这种级别会出现脏读,幻读或者不可重复读

    已提交读:允许读取并发事务提交的数据变更,这种级别可以防止脏读,但是幻读和不可重复读仍然有可能发生

    可重复读:对同一个字段的读取结果是一致的,除非数据被自身事务改变,这种级别可以防止脏读和不可重复读,但幻读仍然可能发生,也是Mysql默认的隔离级别

    串行:这个是最高级别,完全服从ACID的隔离级别,所有事务都是依次顺序执行,这样事务之间不可能产生干扰,可以防止脏读、幻读和不可重复读,但这种级别会严重影响到程序的性能,所以一般不会用到这个级别吧

    事务隔离级别是基于锁机制和并发调度,并发调度使用的MVCC多版本并发控制,通过保存修改的版本来支持并发一致性读和回滚等特性

2、实际场景中是用怎样的策略来修改隔离级别的?

3、InnoDB的索引有哪些,具体是怎么实现的?

4、这几种实现有什么区别,你平时设计索引时是基于什么策PHP略来做选择的?

5、Mysql锁的分类、作用以及实际工作上的应用场景?

6、分布式熟悉吗?分布式锁是怎么实现的?了解过etcd吗?

7、PHP优化,了解过opcache 和 opcode

8、简述一下URL发生的过程

答:

    1)浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的IP,然后通过IP地址找到IP对应的服务器后

    2)要求建立TCP连接(三次握手),等浏览器发送完HTTP Request(请求)包后,服务器接收到请求包之后才开始处理请求包,服务器调用自身服务,返回HTTP Response(响应)包;

    3)客户端收到来自服务器的响应后开始渲染这个Response包里的主体(body),等收到全部的内容随后断开与该服务器之间的TCP连接(4次握手)。

    一个Web服务器也被称为HTTP服务器,它通过HTTP协议与客户端通信。这个客户端通常指的是Web浏览器

9、PHP-FPM是什么架构模式,你是怎么实现它的?

10、说说你使用到的rabbitMQ和你对他的理解?

11、说说redis的分片

12、说说AOP?

13、说说Hyperf的特点

14、说说协程池和协程状态管理

15、说说linux和shell脚本

16、说说map reduce对数据的批处理(hodoop呢)

来源:原创 发布时间:2022-06-07 20:17:04