PHP中高階面試的時候總是會問到這些問題(總結)

php自學中心發表於2020-11-18

近期體驗了一下面試,發現是有很多的不足,我們都知道一個小企業肯定用不到很多高階技術的東西,但是嘛,面試總是一種套路,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框架

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章