近期體驗了一下面試,發現是有很多的不足,我們都知道一個小企業肯定用不到很多高階技術的東西,但是嘛,面試總是一種套路,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的各種鎖(表鎖,行鎖,悲觀鎖,樂觀鎖,間隙鎖,死鎖)
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 安全性攻擊有哪些呢 ?
基礎全面總結可以從面試題檢視:
4 為PHP面試而準備的演算法題總結
面試官問完MySQL效能,也會問你redis,我們基本都會用redis做快取,它還有更全面的一些功能與應用,比如做訊息佇列,釋出訊息訂閱,分散式鎖等。總結的文章可點選標題檢視
8 使用過redis做非同步佇列麼,你是怎麼用的?有什麼缺點?
9 吃透了這些Redis知識點,面試官一定覺得你很厲害
框架我用laravel,所以面試官會根據你所認識的框架知識來考你,這裡總結了laravel的一些知識,點選檢視
1 Laravel框架的這些你都懂的話,它核心架構基本就懂了
3 Laravel 核心技術:基於 JWT 實現 Laravel API 認證
本作品採用《CC 協議》,轉載必須註明作者和本文連結