近期体验了一下面试,发现是有很多的不足,我们都知道一个小企业肯定用不到很多高级技术的东西,但是嘛,面试总是一种套路,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 查询优化分析的
从上面的分析sql后会接着问索引优化又是如何优化的。
2 索引优化
索引优化这个是比较重要的,sql的性能大多和索引有关的。以下总结了近期面试,面试官提过的问题,点击标题可查看详细内容
上面的问题基本都是要掌握的,这些问题回答好了,基本没啥问题了,最多会再来几个索引的比较的问题。
这里再附上一些索引基础问题的文章:
除了上面两大问题外,其他的个人觉得都是一些零零散散的咯,面试官也会根据自己公司项目的要求,会问你一些问题,比如电商的
如sku的设计:商品SKU系统,你如何设计?
高并发的问题,肯定会涉及到锁:
1 MySQL的各种锁(表锁,行锁,悲观锁,乐观锁,间隙锁,死锁)
关于PHP方面的,面试官问的都离不开php的基础,主要有(点击标题可查看)
1 字符串的使用:PHP字符串函数的梳理与总结
2 数组的使用:PHP数组函数的梳理与总结
3 正则表达式,特别要是email这条:php正则表达式基本知识与应用详解
4 session与cookie:带你了解session和cookie作用原理区别和用法
5 设计模式的应用:PHP常见的设计模式,我觉得你还是要搞懂!
6 restful的api设计:RESTful Api的设计与风格,你该学一下咯
7 PHP安全问题:常见的PHP 安全性攻击有哪些呢 ?
基础全面总结可以从面试题查看:
面试官问完MySQL性能,也会问你redis,我们基本都会用redis做缓存,它还有更全面的一些功能与应用,比如做消息队列,发布消息订阅,分布式锁等。总结的文章可点击标题查看
8 使用过redis做异步队列么,你是怎么用的?有什么缺点?
框架我用laravel,所以面试官会根据你所认识的框架知识来考你,这里总结了laravel的一些知识,点击查看
1 Laravel框架的这些你都懂的话,它核心架构基本就懂了
3 Laravel 核心技术:基于 JWT 实现 Laravel API 认证
发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