PHP架構(gòu)師面試題目和答案_第1頁
PHP架構(gòu)師面試題目和答案_第2頁
PHP架構(gòu)師面試題目和答案_第3頁
PHP架構(gòu)師面試題目和答案_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、一、 MySQL相關(guān)知識1、請列舉 mysql 優(yōu)化方式選取最適用的字段屬性、事務(wù)、鎖定表、使用外鍵、使用索引、優(yōu)化的查詢語句使用連接( JOIN )來代替子查詢(Sub-Queries)使用聯(lián)合 (UNION) 來代替手動創(chuàng)建的臨時(shí)表2、請列舉分庫分表的常用方法有一個(gè) 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 m

2、id%100=$i;?3、 Mysql+ 如何做雙機(jī)熱備和負(fù)載均衡1.主服務(wù)器授權(quán)2.數(shù)據(jù)復(fù)制3.配置主服務(wù)器4.重啟 master5.配置 slave6.重啟 slave 7.查看 master的狀態(tài)與設(shè)置的是否一致8.查看 slave4、數(shù)據(jù)表類型有哪些MyISAM 、 InnoDB 、 HEAP 、 BOB,ARCHIVE,CSV等MyISAM :成熟、穩(wěn)定、易于管理,快速讀取。一些功能不支持(事務(wù)等),表級鎖。InnoDB :支持事務(wù)、外鍵等特性、數(shù)據(jù)行鎖定??臻g占用大,不支持全文索引等。5、防 sql 注入的方法 ?mysql_escape_string(strip_tags($ar

3、r$val);6、 mysql 把一個(gè)大表拆分多個(gè)表后, 如何解決跨表查詢效率問題php view plaincopy1. /*2. * 函數(shù)名稱: post_check()3. * 函數(shù)作用:對提交的編輯內(nèi)容進(jìn)行處理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);/進(jìn)行 magic_quotes_gpc 沒有打開的情

4、況對提交數(shù)據(jù)的過濾10.11.$post=str_replace(_,_,$post);/把_ 過濾掉12.$post=str_replace(%,%,$post);/把% 過濾掉13.$post=nl2br($post);/回車轉(zhuǎn)換14.$post=htmlspecialchars($post);/html 標(biāo)記轉(zhuǎn)換15.return$post;16.7、索引應(yīng)用7.1 什么情況下考慮索引7.2 什么情況不適合索引7.3 一個(gè)語句是否用到索引如何判斷8、 mysql 對于大表 ( 千萬級 ), 要怎么優(yōu)化第一優(yōu)化你的sql 和索引;第二加緩存,memcached,redis;第三以上都做了后

5、,還是慢,就做主從復(fù)制或主主復(fù)制,讀寫分離,可以在應(yīng)用層做,效率高,也可以用三方工具, 第三方工具推薦360 的 atlas, 其它的要么效率不高,要么沒人維護(hù);第四如果以上都做了還是慢,不要想著去做切分,mysql 自帶分區(qū)表,先試試這個(gè),對你的應(yīng)用是透明的,無需更改代碼, 但是 sql 語句是需要針對分區(qū)表做優(yōu)化的,sql 條件中要帶上分區(qū)條件的列, 從而使查詢定位到少量的分區(qū)上,否則就會掃描全部分區(qū),另外分區(qū)表還有一些坑,在這里就不多說了;第五如果以上都做了, 那就先做垂直拆分, 其實(shí)就是根據(jù)你模塊的耦合度,將一個(gè)大的系統(tǒng)分為多個(gè)小的系統(tǒng),也就是分布式系統(tǒng);第六才是水平切分, 針對數(shù)據(jù)量

6、大的表, 這一步最麻煩, 最能考驗(yàn)技術(shù)水平,要選擇一個(gè)合理的 sharding key, 為了有好的查詢效率,表結(jié)構(gòu)也要改動,做一定的冗余,應(yīng)用也要改, sql 中盡量帶 sharding key ,將數(shù)據(jù)定位到限定的表上去查,而不是掃描全部的表;mysql 數(shù)據(jù)庫一般都是按照這個(gè)步驟去演化的,成本也是由低到高;9、如何理解 mysql 的慢查詢其實(shí)通過慢查詢?nèi)罩緛矸治鍪且环N比較簡單的方式,如果不想看日志, 可以借助工具來完成,如 mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter來分析一個(gè)需要豐富的

7、經(jīng)驗(yàn),一個(gè)浪費(fèi)時(shí)間。等,感覺自己10、關(guān)于用戶登錄狀態(tài)存session,cookie還是數(shù)據(jù)庫或者 memcache的優(yōu)劣11、事務(wù)應(yīng)用極端情況處理12、sql 語言分 4 大類請列舉DDL-CREATE,DROP,ALTERDML-INSERT,UPDATE,DELETEDQL-SELECTDCL-GRANT,REVOKE,COMMIT,ROLLBACK二、 php 基礎(chǔ)? session 的跨域共享是什么,如何實(shí)現(xiàn)? php 連接 mysql 數(shù)據(jù)庫的幾種方式及區(qū)別mysql: 面向過程mysqli: 面向?qū)ο髉do: 可移植性高三、 php 高級? 長連接和短連接的使用,區(qū)別是什么? s

8、ocket 的使用,簡述過程? 支付安全問題,如何保證? 面向?qū)ο蟮母拍? 三大特性:封裝、繼承、多態(tài)(方法重寫)。抽象類: abstract, 至少有一個(gè)方法是抽象方法,不能被實(shí)例化,為子類定義公共接口。接口: interface, 解決 php 的單繼承問題,所有方法都是 public 訪問權(quán)限的抽象方法,不能聲明變量只能聲明常量。繼承一個(gè)類的同時(shí)實(shí)現(xiàn)多個(gè)接口class Aextends B implements接口 1 ,接口 2. ,接口 n()/ 實(shí)現(xiàn)所有接口中的方法?lamp 和 lnmp網(wǎng)站架構(gòu)性能差異的原因分析? 解釋性語言和編譯性語言的性能分析,請舉例四、正則表達(dá)式:請用js

9、 實(shí)現(xiàn)正則表達(dá)式驗(yà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_n

10、ame + n;alert_string += 域名: + domain_name;window.alert( alert_string );return true;elsewindow.alert( 您輸入的電子郵件地址不合法 );return false;五、開發(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 個(gè)場景完全不同的東西。 1.memcached:單一鍵值對內(nèi)存緩存的,做對象緩存無可替代的分布式緩存; 2.redis :是算法和數(shù)據(jù)結(jié)構(gòu)的

11、集合,快速的數(shù)據(jù)結(jié)構(gòu)操作是他最大的特點(diǎn),支持?jǐn)?shù)據(jù)持久化; 3.mongodb 是 bson 結(jié)構(gòu)、介于 rdb 和 nosql 之間的,更松散更靈活的,但是不支持事務(wù),只用作非重要數(shù)據(jù)存儲。七、常用 linux命令:如何建立軟鏈接八、架構(gòu)相關(guān)?項(xiàng)目上線前如何進(jìn)行壓力測試,單臺服務(wù)器支持的并發(fā)數(shù),pv 數(shù)? 服務(wù)器資源怎么分配合理CPU: ApacheMySQL處在高負(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、

溫馨提示

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

評論

0/150

提交評論