博主信息
PHP自学中心
博文
10
粉丝
0
评论
2
访问量
10196
积分:0
P豆:21

面试PHP中高级工程师的时候总是会问到这些问题(总结)

2021年03月02日 18:22:15阅读数:842博客 / PHP自学中心/ 职场面试

近期体验了一下面试,发现是有很多的不足,我们都知道一个小企业肯定用不到很多高级技术的东西,但是嘛,面试总是一种套路,php整个领域的知识你必须要掌握到位。这样面试官问啥你答啥,基本就谈不上紧张与胆怯了。

这里重要的一点还是要在表达上清晰明了,不然也是不好拿到offer哦!


对于基础不好,掌握不到位的同学,那就要多多加把劲了,多看与多记一些面试题(这是一种方法)你可以关注 《程序员面试题A卷》公众号,这里分享了各种各样的php面试题。



下面小编来给大家总结近期面试遇到的问题,都是很实在的
纵观所有公司,面试官基本都会问:MySQL的性能你是如何优化的?遇到这种问题,你会想到的是查询优化,索引优化

1 查询优化
又问:比如一个页面响应很久,或者一个sql查询了好久,你该如何去分析问题呢?

这里给大家总结了,详细的可以看这篇文章:你开发的PHP网站访问很慢,你如何找原因

分析sql,我们都知道会用到慢查询日志,会用到explain去分析,那你又是如何知道一张表里没有用索引或者是多余的字段。。。具体问题具体分析,附上EXPLAIN语句

使用方法,在要执行的查询语句前面加EXPLAIN

EXPLAIN SELECT  * FROM user;

得到形如下图的结果:
在这里插入图片描述


下面是对每一项的解释:

id 查询语句的id,简单查询无意义,多重查询时可以看出执行查询的顺序
select-type 执行的查询语句的类型,对应多重查询,有simple/primary/union等。
tabel 查询语句查询的数据表
type  获得数据的类型 常见的类型效率从高到低为 null>const>eq_ref>ref>range>index>all
possible-keys:可能使用到的索引
key 使用到的索引
key_len索引长度
ref 使用哪个列与索引一起从表中选择。
rows  查找到数据要扫描的大概行数,可看出索引的优劣
extra  常见的有
using filesort 查询到数据后进行文件排序,较慢,需要优化索引
using where 读取整行数据后进行判断过滤,是否符合where条件
using index 索引覆盖,即在牵引中已经有这存储了目标数据,直接读取索引,很快。

MySQL查询,面试官会再引发的问题:
一张百万数据的大表,你是如何用分页来查询数据的,具体的问题对应的内容小编也给大家总结过,具体可以看这篇文章: MySQL百万数据,你如何用分页来查询数据



这里再附上几篇查询优化的文章,点击可查看

1 看看大神是如何对900W+的数据表的SQL 查询优化分析的

2 30个mysql千万级大数据SQL查询优化技巧详解

3 往mysql中插入10万数据,你是如何实现,又如何优化



从上面的分析sql后会接着问索引优化又是如何优化的。

2 索引优化
索引优化这个是比较重要的,sql的性能大多和索引有关的。以下总结了近期面试,面试官提过的问题,点击标题可查看详细内容

1 你知道MySQL索引为什么要选择B+树呢

2 你知道导致MySQL索引失效的原因有哪些

3 为什么MySQL添加索引后就可以提高查询速度

4 给一个线上环境的大数据表,如何给它加索引



上面的问题基本都是要掌握的,这些问题回答好了,基本没啥问题了,最多会再来几个索引的比较的问题。

这里再附上一些索引基础问题的文章:

1 MySQL索引详解与索引的优化

2 MySQL索引,你知道有几种类型呢

3 mysql性能优化之索引优化

4 mysql_建立索引的优缺点

5 mysql 表索引的一些要点


除了上面两大问题外,其他的个人觉得都是一些零零散散的咯,面试官也会根据自己公司项目的要求,会问你一些问题,比如电商的
如sku的设计:商品SKU系统,你如何设计?


高并发的问题,肯定会涉及到锁:
1 MySQL的各种锁(表锁,行锁,悲观锁,乐观锁,间隙锁,死锁)

2 针对业务场景的需要,合理的使用MySQL乐观锁与悲观锁

3 Redis实现分布式锁与任务队列的思路与源码

4 高并发遇到死锁不知道怎么解决,看这篇足矣!


关于PHP方面的,面试官问的都离不开php的基础,主要有(点击标题可查看)
1 字符串的使用:PHP字符串函数的梳理与总结

2 数组的使用:PHP数组函数的梳理与总结

3 正则表达式,特别要是email这条:php正则表达式基本知识与应用详解

4 session与cookie:带你了解session和cookie作用原理区别和用法

5 设计模式的应用:PHP常见的设计模式,我觉得你还是要搞懂!

6 restful的api设计:RESTful Api的设计与风格,你该学一下咯

7 PHP安全问题:常见的PHP 安全性攻击有哪些呢 ?


基础全面总结可以从面试题查看:

1 2019PHP面试题大全【PHP基础部分】

2 2019PHP面试题大全【数据库部分】

3 2019PHP面试题大全【面向对象部分】

4 为PHP面试而准备的算法题总结



面试官问完MySQL性能,也会问你redis,我们基本都会用redis做缓存,它还有更全面的一些功能与应用,比如做消息队列,发布消息订阅,分布式锁等。总结的文章可点击标题查看

1 Redis能做什么?不能做什么?

2 吃透了这些Redis知识点,面试官一定觉得你很厉害

3 Redis为什么是单线程,高并发快由哪些因素决定?

4 Redis持久化机制,优缺点,如何选择合适方式

5 如何解决Redis缓存和MySQL数据一致性的问题?

6 Redis的并发竞争问题,你用哪些方案来解决?

7 Redis的内存过期与淘汰策略是如何工作的?

8 使用过redis做异步队列么,你是怎么用的?有什么缺点?

9 吃透了这些Redis知识点,面试官一定觉得你很厉害



框架我用laravel,所以面试官会根据你所认识的框架知识来考你,这里总结了laravel的一些知识,点击查看
1 Laravel框架的这些你都懂的话,它核心架构基本就懂了

2 一些实用的 Laravel 小技巧

3 Laravel 核心技术:基于 JWT 实现 Laravel API 认证

4 用了这么久的Laravel框架,你分析过核心架构了没

5 Laravel为什么会成为最优雅的PHP框架


发PHP技术文章的公众号不多了,而小编一直坚持着,给大家精选文章,希望能帮助到你!

关注公众号,回复相应的数字,获取以下视频教程

1 Vue2.5核心技术源码分析
公众号里回复:19082201

2 设计模式实例剖析与深入解读
公众号里回复:20190714

3 PHP高级实战教程全集
公众号里回复:20190625

4 与mysql的零距离接触
公众号里回复:20190128

5 高性能Linux服务器搭建实战
公众号里回复:20190622

6 ThinkPHP5底层源码分析
公众号里回复:20190621

7 Thinkphp插件化开发微信系统
公众号里回复:201907282319

8 Laravel 基础入门到微信商城实战开发
公众号里回复:08250045

9 PHP异步通信框架Swoole实战
公众号里回复:08250024

在这里插入图片描述

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • 今天php文网为同学们了一redis常被,除了redis常见,我们还整理了一2021年最新redis,欢迎学习,掌握,就可以吊打官啦!
    在社区教使用go开发版本1.15版本,而我自己尝开发版本1.16.5,出现一,在里我把使用air做个
    篇文章目,我真实在,某互联网众筹公司在考察者MySQL相关知识第一个,我当比较懵,没想年轻人不讲武德,不按套路出牌,一般MySQL相关知识