PHP面試總結-1

剛從大學畢業,第一件事就是找工作,面試了幾家公司做一下總結。主要針對面試管提出的問題,和自己認爲需要提高的地方和注意的技巧。

面試公司

   面試的第一家公司悅多米(電商方向),規模比較小。

面試中體現出的問題

  • 沒有一個完整的項目
  • 面試的基礎知識準備不充分
  • 簡歷太過簡陋

解決和提升的方法

  • 完善簡歷信息
  • 過一個PHP面試的常見問題和基礎知識
  • 對之前的項目進行總結並完善,儘量可以從之前的項目衍生一個完整的項目出來(如果有心儀的行業,建議找個結合相關行業的項目)
  • 在前面兩點準備充分的條件下,儘量找一個完整的項目寫出來

面試官提出的問題

首先進行自我介紹

(面試技巧): 儘量避免只老套的介紹項目和自己。儘量在介紹自己的同時挑選幾個亮點,同時結合面試公司的需求,體現出自己符合公司需求方面的長處。

關係型數據庫和非關係型數據庫之間的區別

兩者的本質區別:

非關係型數據庫產品是傳統型數據庫的功能閹割版本,通過減少用不到或很少用到的 功能,來大幅度提高產品性能。

非關係型數據庫的優勢:

  • 性能

NOSQL是基於鍵值對的,可以想象成表中的主鍵和值的對應關係,而且不需要經過SQL層的層層解析,所以性能很高。

  • 可擴展性

同樣也是因爲基於鍵值對,數據之間沒有耦合性,所以非常容易水平擴展。

關係型數據庫的優勢:

  • 複雜查詢

可以用SQL語句方便的在一個標以及多個表之間做非常複雜的數據查詢。

  • 事務支持

使得對於安全性能很高的數據訪問要求得以實現

現在的相關技術Mysql的HandlerSocket

HandlerSocket是一個MySQL的NoSQL插件。HandlerSocket會在mysql進程中開一個守護線程,來接受和處理來自客戶端的tcp請求。 HandlerSocket不支持SQL查詢,只提供簡單的CRUD的操作。 因爲以下原因,HandlerSocket比mysqld/libmysql要快一些。

  • HandlerSocket操作數據不經過解析SQL語句,CPU耗能比較少。
  • HandlerSocket接收客戶端的請求並批量執行,CPU和磁盤消耗少。
  • HandlerSocket的client/server協議比mysql/libmysql相對緊湊一些,網絡消耗要少一些。

命令空間的作用

PHP中的命令空間的明確的作用就是解決重名問題。

談一談數據庫優化的思路

  • 設置良好的數據庫表結構,允許部分數據冗餘,儘量避免多表查詢的情況的出現
  • 選擇合適的表字段類型和存儲引擎,適當的添加索引
  • 對SQL語句進行優化,儘量避免join語句,提高查詢速度
  • 按照規律進行分表減少單表的數據量
  • 設置主從數據庫,對數據庫進行讀寫分離

談一談對高併發,和大數據的處理方法

這樣的問題一般從兩個大方面來回答,一個是web服務器方向,另一個是從數據庫方向。

Web服務器

  • 利用nginx反向代理,在web服務器前面搭建緩存層,請求不直接請求web服務器,而是請求緩存服務器,減少Web服務器的負載。
  • 在客戶端方面請求時儘量的採用異步
  • 服務器處理連接儘量採用隊列的形式來處理請求,避免了服務的高併發。
  • 添加緩存機制,比如memcached,apc
  • 對不經常更改的頁面進行靜態化
  • 採用CDN服務來進行加速
  • 構建Web服務器集羣

數據庫方面

數據庫方面和上面的數據庫優化的思路相同

發佈了58 篇原創文章 · 獲贊 43 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章