PHP架構師面試題目和答案.doc_第1頁
PHP架構師面試題目和答案.doc_第2頁
PHP架構師面試題目和答案.doc_第3頁
PHP架構師面試題目和答案.doc_第4頁
PHP架構師面試題目和答案.doc_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

精品文檔一、MySQL相關知識1、請列舉mysql優(yōu)化方式選取最適用的字段屬性、事務、鎖定表、使用外鍵、使用索引、優(yōu)化的查詢語句使用連接(JOIN)來代替子查詢(Sub-Queries)使用聯(lián)合(UNION)來代替手動創(chuàng)建的臨時表2、請列舉分庫分表的常用方法有一個1000多萬條記錄的用戶表members,查詢起來非常之慢?phpfor($i=0;$i 100; $i+ )/echo CREATE TABLE db2.members$i LIKE db1.members;echo INSERT INTO members$i SELECT * FROM members WHERE mid%100=$i;?3、 Mysql+如何做雙機熱備和負載均衡1.主服務器授權2.數(shù)據(jù)復制3.配置主服務器4.重啟master5.配置slave6.重啟slave7.查看master的狀態(tài)與設置的是否一致8.查看slave4、數(shù)據(jù)表類型有哪些MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等MyISAM:成熟、穩(wěn)定、易于管理,快速讀取。一些功能不支持(事務等),表級鎖。InnoDB:支持事務、外鍵等特性、數(shù)據(jù)行鎖定??臻g占用大,不支持全文索引等。5、防sql注入的方法? mysql_escape_string(strip_tags($arr$val);6、mysql把一個大表拆分多個表后,如何解決跨表查詢效率問題php view plain copy1. /*2. *函數(shù)名稱:post_check()3. *函數(shù)作用:對提交的編輯內(nèi)容進行處理4. *參數(shù):$post:要提交的內(nèi)容5. *返回值:$post:返回過濾后的內(nèi)容6. */7. functionpost_check($post)8. if(!get_magic_quotes_gpc()/判斷magic_quotes_gpc是否為打開9. $post=addslashes($post);/進行magic_quotes_gpc沒有打開的情況對提交數(shù)據(jù)的過濾10. 11. $post=str_replace(_,_,$post);/把_過濾掉12. $post=str_replace(%,%,$post);/把%過濾掉13. $post=nl2br($post);/回車轉(zhuǎn)換14. $post=htmlspecialchars($post);/html標記轉(zhuǎn)換15. return$post;16. 7、索引應用7.1什么情況下考慮索引7.2什么情況不適合索引7.3一個語句是否用到索引如何判斷8、mysql對于大表(千萬級),要怎么優(yōu)化第一優(yōu)化你的sql和索引;第二加緩存,memcached,redis;第三以上都做了后,還是慢,就做主從復制或主主復制,讀寫分離,可以在應用層做,效率高,也可以用三方工具,第三方工具推薦360的atlas,其它的要么效率不高,要么沒人維護;第四如果以上都做了還是慢,不要想著去做切分,mysql自帶分區(qū)表,先試試這個,對你的應用是透明的,無需更改代碼,但是sql語句是需要針對分區(qū)表做優(yōu)化的,sql條件中要帶上分區(qū)條件的列,從而使查詢定位到少量的分區(qū)上,否則就會掃描全部分區(qū),另外分區(qū)表還有一些坑,在這里就不多說了;第五如果以上都做了,那就先做垂直拆分,其實就是根據(jù)你模塊的耦合度,將一個大的系統(tǒng)分為多個小的系統(tǒng),也就是分布式系統(tǒng);第六才是水平切分,針對數(shù)據(jù)量大的表,這一步最麻煩,最能考驗技術水平,要選擇一個合理的sharding key,為了有好的查詢效率,表結構也要改動,做一定的冗余,應用也要改,sql中盡量帶sharding key,將數(shù)據(jù)定位到限定的表上去查,而不是掃描全部的表;mysql數(shù)據(jù)庫一般都是按照這個步驟去演化的,成本也是由低到高;9、如何理解mysql的慢查詢其實通過慢查詢?nèi)罩緛矸治鍪且环N比較簡單的方式,如果不想看日志,可以借助工具來完成,如mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter等,感覺自己來分析一個需要豐富的經(jīng)驗,一個浪費時間。10、關于用戶登錄狀態(tài)存session,cookie還是數(shù)據(jù)庫或者memcache的優(yōu)劣 11、事務應用極端情況處理12、sql語言分4大類請列舉 DDL-CREATE,DROP,ALTER DML-INSERT,UPDATE,DELETE DQL-SELECT DCL-GRANT,REVOKE,COMMIT,ROLLBACK二、php基礎 session的跨域共享是什么,如何實現(xiàn) php連接mysql數(shù)據(jù)庫的幾種方式及區(qū)別mysql:面向過程mysqli:面向?qū)ο髉do:可移植性高 三、php高級 長連接和短連接的使用,區(qū)別是什么 socket的使用,簡述過程 支付安全問題,如何保證 面向?qū)ο蟮母拍?三大特性:封裝、繼承、多態(tài)(方法重寫)。抽象類:abstract,至少有一個方法是抽象方法,不能被實例化,為子類定義公共接口。接口:interface,解決php的單繼承問題,所有方法都是public訪問權限的抽象方法,不能聲明變量只能聲明常量。繼承一個類的同時實現(xiàn)多個接口class A extends B implements 接口1,接口2.,接口n() /實現(xiàn)所有接口中的方法 lamp 和 lnmp 網(wǎng)站架構性能差異的原因分析 解釋性語言和編譯性語言的性能分析,請舉例四、正則表達式:請用js實現(xiàn)正則表達式驗證郵箱function check( email_address )var regex = /(0-9A-Za-z-_.+)(0-9a-z+.a-z2,3(.a-z2)?)$/g;if ( regex.test( email_address ) )var user_name = email_address.replace( regex, $1 );var domain_name = email_address.replace( regex, $2 );var alert_string = 您輸入的電子郵件地址合法nn;alert_string += 用戶名: + user_name + n;alert_string += 域名: + domain_name;window.alert( alert_string );return true;elsewindow.alert( 您輸入的電子郵件地址不合法 );return false;五、開發(fā)基礎:簡述進程和線程定義,區(qū)別和聯(lián)系進程的狀態(tài):運行run、就緒ready、等待wait六、Nosql數(shù)據(jù)庫:簡述memcached、redis、mongodb的區(qū)別聯(lián)系3個場景完全不同的東西。1.memcached:單一鍵值對內(nèi)存緩存的,做對象緩存無可替代的分布式緩存;2.redis:是算法和數(shù)據(jù)結構的集合,快速的數(shù)據(jù)結構操作是他最大的特點,支持數(shù)據(jù)持久化;3.mongodb是bson結構、介于rdb和nosql之間的,更松散更靈活的,但是不支持事務,只用作非重要數(shù)據(jù)存儲。七、常用linux命令:如何建立軟鏈接八、架構相關 項目上線前如何進行壓力測試,單臺服務器支持的并發(fā)數(shù),pv數(shù)? 服務器資源怎么分配合理CPU:ApacheMySQL處在高負載環(huán)境下,磁盤IO讀寫過多,肯定會占用很多資源,必然會CPU占用過高。內(nèi)存:內(nèi)存庫,數(shù)據(jù)庫軟件硬盤:文件 web2.0架構選擇有?MongoDB+Redis 或者 MySQL+Memcached 比較好的組合,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論