php程式設計師就是從事開發計算機語言的人,下面是本站小編精心為大家整理的關於高階php程式設計師面試題,希望對大家有幫助,更多內容請關注應屆畢業生網!
一、mysql相關知識
1、 mysql優化方式
MYSQL 優化常用方法
mysql 效能優化方案
2、如何分庫分表
參考:
_
3、 Mysql+如何做雙機熱備和負載均衡
如何做雙機熱備和負載均衡
4、資料表型別有哪些
MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等
MyISAM:成熟、穩定、易於管理,快速讀取。一些功能不支援(事務等),表級鎖。
InnoDB:支援事務、外來鍵等特性、資料行鎖定。空間佔用大,不支援全文索引等。
myisam和Innodb引擎的主要特點
MySQL的儲存引擎MyISAM與InnoDB有什麼區別?
5、防sql注入方法
mysql_escape_string(strip_tags($arr["$val"]));
/**
* 函式名稱:post_check()
* 函式作用:對提交的編輯內容進行處理
* 參 數:$post: 要提交的內容
* 返 回 值:$post: 返回過濾後的內容
*/
function post_check($post){
if(!get_magic_quotes_gpc()){// 判斷magic_quotes_gpc是否為開啟
$post = addslashes($post);// 進行magic_quotes_gpc沒有開啟的情況對提交資料的過濾
}
$post = str_replace("_","_",$post);// 把 '_'過濾掉
$post = str_replace("%","%",$post);// 把 '%'過濾掉
$post = nl2br($post);// 回車轉換
$post =htmlspecialchars($post);// html標記轉換
return $post;
}
6、mysql把一個大表拆分多個表後,如何解決跨表查詢效率問題
7、索引應用
什麼情況下考慮索引
什麼情況不適合索引
一個語句是否用到索引如何判斷
經常發生的用不到索引的場景:
like '%.....'
資料型別隱式轉換
or 關鍵字加其它條件約束
全文索引:
只能用於MYIsAM表,在CHAR,VARCHAR,TEXT型別的列上建立。
8、mysql對於大表(千萬級),要怎麼優化呢?
參考
9、mysql的慢查詢問題
其實通過慢查詢日誌來分析是一種比較簡單的方式,如果不想看日誌,可以藉助工具來完成,
如mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter等,感覺自己來分析一個需要豐富的經驗,一個浪費時間。
10、關於使用者登入狀態存session,cookie還是資料庫或者memcache的優劣
關於使用者登入狀態存session%2Ccookie還是資料庫或者memcache的`優劣
11、事務應用極端情況處理
12、sql語言分4大類請列舉
DDL--CREATE,DROP,ALTER
DML--INSERT,UPDATE,DELETE
DQL-SELECT
DCL--GRANT,REVOKE,COMMIT,ROLLBACK
二、php基礎
session的跨域共享 php連線mysql資料庫的幾種方式及區別
mysql:面向過程
mysqli:面向物件
pdo:可移植性高
請參考:php基礎系列:PHP連線MySQL資料庫用到的三種API
三、php高階
長連線和短連線的使用socket的使用支付安全問題
面向物件
三大特性:封裝、繼承、多型(方法重寫)。
抽象類:abstract,至少有一個方法是抽象方法,不能被例項化,為子類定義公共介面。
介面:interface,解決php的單繼承問題,所有方法都是public訪問許可權的抽象方法,不能宣告變數只能宣告常量。
繼承一個類的同時實現多個介面
class A extends B implements 介面1,介面2...,介面n(){
//實現所有介面中的方法
}lamp 和 lnmp 網站架構效能差異的原因分析解釋性語言和編譯性語言的效能分析,舉例。
四、正則
email,html,js等匹配
五、開發基礎
程序和執行緒定義,區別和聯絡。
程序的狀態:執行run、就緒ready、等待wait六、Nosql資料庫
memcached、redis、mongodb的區別聯絡
3個場景完全不同的東西。ached:單一鍵值對記憶體快取的,做物件快取無可替代的分散式快取;s:是演算法和資料結構的集合,快速的資料結構操作是他最大的特點,支援資料持久化;odb是bson結構、介於rdb和nosql之間的,更鬆散更靈活的,但是不支援事務,只用作非重要資料儲存。
參考 MongoDB 或者 redis 可以替代 memcached 嗎?
七、常用linux命令
比如軟連結
八、架構相關
專案上線前的壓力測試,單臺伺服器支援的併發數,pv數。
伺服器資源合理分配問題 CPU:Apache
MySQL處在高負載環境下,磁碟IO讀寫過多,肯定會佔用很多資源,必然會CPU佔用過高。
記憶體:記憶體庫,資料庫軟體
硬碟:檔案
web2.0架構選擇 MongoDB+redis 或者 MySQL+Memcached 比較好的組合,邏輯簡單的就用NOSQL
當前流行主要網站架構
LAMP、LNMP、LLMP
現在網路上還有一種LNAMP構架,也就是綜合了nginx和Apache的優點,使用Apache負載PHP,nginx負責解析其他Web請求,使用nginx的rewrite模組,但是Apache埠不對外開放,Apache的許多模組都可以不載入減少資源。
更多php面試題推薦:
1.2017年PHP面試題與答案
2.高階php程式設計師面試題
3.2017年PHP面試之程式設計題及答案
4.一套PHP面試題2017
5.十個值得深思的PHP面試問題
面試之php自帶的幾個防止sql注入的函式
7.2017年PHP面試題之HTTP狀態碼出現問題
8.2017年PHP工程師面試題集
9.2017年PHP面試程式設計題
10.英文題目的PHP面試題及答案