- 相關(guān)推薦
高級php程序員面試題
php程序員就是從事開發(fā)計算機(jī)語言的人,下面是百分網(wǎng)小編精心為大家整理的關(guān)于高級php程序員面試題,希望對大家有幫助,更多內(nèi)容請關(guān)注應(yīng)屆畢業(yè)生網(wǎng)!
一、mysql相關(guān)知識
1、 mysql優(yōu)化方式
MYSQL 優(yōu)化常用方法
mysql 性能優(yōu)化方案
2、如何分庫分表
參考:
http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html
http://www.jb51.net/article/29771.htm
3、 Mysql+如何做雙機(jī)熱備和負(fù)載均衡
http://www.dewen.org/q/51/Mysql+如何做雙機(jī)熱備和負(fù)載均衡
4、數(shù)據(jù)表類型有哪些
MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等
MyISAM:成熟、穩(wěn)定、易于管理,快速讀取。一些功能不支持(事務(wù)等),表級鎖。
InnoDB:支持事務(wù)、外鍵等特性、數(shù)據(jù)行鎖定?臻g占用大,不支持全文索引等。
myisam和Innodb引擎的主要特點
MySQL的存儲引擎MyISAM與InnoDB有什么區(qū)別?
5、防sql注入方法
mysql_escape_string(strip_tags($arr["$val"]));
/**
* 函數(shù)名稱:post_check()
* 函數(shù)作用:對提交的編輯內(nèi)容進(jìn)行處理
* 參 數(shù):$post: 要提交的內(nèi)容
* 返 回 值:$post: 返回過濾后的內(nèi)容
*/
function post_check($post){
if(!get_magic_quotes_gpc()){// 判斷magic_quotes_gpc是否為打開
$post = addslashes($post);// 進(jìn)行magic_quotes_gpc沒有打開的情況對提交數(shù)據(jù)的過濾
}
$post = str_replace("_","\_",$post);// 把 '_'過濾掉
$post = str_replace("%","\%",$post);// 把 '%'過濾掉
$post = nl2br($post);// 回車轉(zhuǎn)換
$post =htmlspecialchars($post);// html標(biāo)記轉(zhuǎn)換
return $post;
}
6、mysql把一個大表拆分多個表后,如何解決跨表查詢效率問題
7、索引應(yīng)用
什么情況下考慮索引
什么情況不適合索引
一個語句是否用到索引如何判斷
經(jīng)常發(fā)生的用不到索引的場景:
like '%.....'
數(shù)據(jù)類型隱式轉(zhuǎn)換
or 關(guān)鍵字加其它條件約束
全文索引:
只能用于MYIsAM表,在CHAR,VARCHAR,TEXT類型的列上創(chuàng)建。
8、mysql對于大表(千萬級),要怎么優(yōu)化呢?
參考http://www.zhihu.com/question/19719997
9、mysql的慢查詢問題
其實通過慢查詢?nèi)罩緛矸治鍪且环N比較簡單的方式,如果不想看日志,可以借助工具來完成,
如mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter等,感覺自己來分析一個需要豐富的經(jīng)驗,一個浪費(fèi)時間。
10、關(guān)于用戶登錄狀態(tài)存session,cookie還是數(shù)據(jù)庫或者memcache的優(yōu)劣 http://www.dewen.org/q/11504/
關(guān)于用戶登錄狀態(tài)存session%2Ccookie還是數(shù)據(jù)庫或者memcache的優(yōu)劣
11、事務(wù)應(yīng)用極端情況處理
12、sql語言分4大類請列舉
DDL--CREATE,DROP,ALTER
DML--INSERT,UPDATE,DELETE
DQL-SELECT
DCL--GRANT,REVOKE,COMMIT,ROLLBACK
二、php基礎(chǔ)
session的跨域共享 php連接mysql數(shù)據(jù)庫的幾種方式及區(qū)別
mysql:面向過程
mysqli:面向?qū)ο?/p>
pdo:可移植性高
請參考:php基礎(chǔ)系列:PHP連接MySQL數(shù)據(jù)庫用到的三種API
三、php高級
長連接和短連接的使用socket的使用支付安全問題
面向?qū)ο?/p>
三大特性:封裝、繼承、多態(tài)(方法重寫)。
抽象類:abstract,至少有一個方法是抽象方法,不能被實例化,為子類定義公共接口。
接口:interface,解決php的單繼承問題,所有方法都是public訪問權(quán)限的抽象方法,不能聲明變量只能聲明常量。
繼承一個類的同時實現(xiàn)多個接口
class A extends B implements 接口1,接口2...,接口n(){
//實現(xiàn)所有接口中的方法
}lamp 和 lnmp 網(wǎng)站架構(gòu)性能差異的原因分析解釋性語言和編譯性語言的性能分析,舉例。
四、正則
email,html,js等匹配
五、開發(fā)基礎(chǔ)
進(jìn)程和線程定義,區(qū)別和聯(lián)系。
進(jìn)程的狀態(tài):運(yùn)行run、就緒ready、等待wait六、Nosql數(shù)據(jù)庫
memcached、redis、mongodb的區(qū)別聯(lián)系
3個場景完全不同的東西。1.memcached:單一鍵值對內(nèi)存緩存的,做對象緩存無可替代的分布式緩存;2.redis:是算法和數(shù)據(jù)結(jié)構(gòu)的集合,快速的數(shù)據(jù)結(jié)構(gòu)操作是他最大的特點,支持?jǐn)?shù)據(jù)持久化;3.mongodb是bson結(jié)構(gòu)、介于rdb和nosql之間的,更松散更靈活的,但是不支持事務(wù),只用作非重要數(shù)據(jù)存儲。
參考 MongoDB 或者 redis 可以替代 memcached 嗎?
七、常用linux命令
比如軟鏈接
八、架構(gòu)相關(guān)
項目上線前的壓力測試,單臺服務(wù)器支持的并發(fā)數(shù),pv數(shù)。
服務(wù)器資源合理分配問題 CPU:Apache
MySQL處在高負(fù)載環(huán)境下,磁盤IO讀寫過多,肯定會占用很多資源,必然會CPU占用過高。
內(nèi)存:內(nèi)存庫,數(shù)據(jù)庫軟件
硬盤:文件
web2.0架構(gòu)選擇 MongoDB+redis 或者 MySQL+Memcached 比較好的組合,邏輯簡單的就用NOSQL
當(dāng)前流行主要網(wǎng)站架構(gòu)
LAMP、LNMP、LLMP
現(xiàn)在網(wǎng)絡(luò)上還有一種LNAMP構(gòu)架,也就是綜合了nginx和Apache的優(yōu)點,使用Apache負(fù)載PHP,nginx負(fù)責(zé)解析其他Web請求,使用nginx的rewrite模塊,但是Apache端口不對外開放,Apache的許多模塊都可以不加載減少資源。
更多php面試題推薦:
6.PHP面試之php自帶的幾個防止sql注入的'函數(shù)
7.2017年P(guān)HP面試題之HTTP狀態(tài)碼出現(xiàn)問題
【高級php程序員面試題】相關(guān)文章:
php程序員面試題03-20
php程序員面試題及答案04-06
如何成為PHP高級程序員02-09
常見的PHP中級程序員面試題04-20
PHP程序員面試題目整理03-02
php面試題05-18
PHP經(jīng)典面試題07-28
PHP中級程序員常見面試題有哪些06-01
PHP程序員最常見的11大面試題04-06