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

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


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



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

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

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

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

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

EXPLAINSELECT*FROMuser;

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


下面是对每一项的解释:

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

在这里插入图片描述

更多相关文章

  1. 对查询的结果集添加自增序号
  2. MySQL 查询语句执行顺序以及On与Where条件过滤的区别
  3. 使用T-SQL进行活动目录查询
  4. mongod入门系列之实战
  5. Web前端开发人员必知的七项数据库优化技巧
  6. SQL优化小讲堂(四)——如何高效查询
  7. SQL优化小讲堂(五)——索引的那些事
  8. SQL优化小讲堂(七)——合理使用变量
  9. 2021华为认证考试流程考试预约成绩查询证书领取

随机推荐

  1. cocos2dx编译HelloWorld
  2. Android(安卓)Studio使用说明
  3. android 画图程序
  4. Android 实现图片保存到本地并调用本地地
  5. Android 指定销毁一个Activity
  6. Android代码混淆
  7. android --相机使用详解概述
  8. android多dex打包问题
  9. Android简单实现加减乘除(两个EditText,两
  10. Android 卡片翻转效果