2020年PHP面試題附答案(實戰(zhàn)經驗)

  出于一些原因近期做了一次工作變動垮庐,在職交接近一個半月時間大概面試了十五家公司,并且得到了自己比較滿意的offer坞琴,最后基本上無縫銜接了新工作哨查。總體來說剧辐,雖然準備的很充分寒亥,但面試期間還是暴露了許多問題,所以做下總結荧关,供大家和自己以后參考溉奕,主要分四部分講述: 簡歷方面,格式內容包括七個板塊忍啤,個人簡介加勤,求職意向,工作經歷,項目經歷鳄梅,技能描述叠国,學歷背景,自我評價戴尸。如果自己或公司沒有其他特殊要求煎饼,這些一般就夠了,具體格式不再贅述校赤。

總結幾個要素:

1.個人簡介名字大寫吆玖,內容需要詳實,一是可以給人留下映像马篮,二是減少不必要的與面試官交換個人信息的時間沾乘。準備一份好的口頭自我介紹是很有必要的,畢竟準備一次能用很久浑测,時間花在上面很實用翅阵,面外企英文版的最好也提前準備下。

2.簡歷上不要寫上期望薪資迁央,能夠根據面試情況變化是最好的掷匠,如果寫上建議高于自身期望,詳細參考錨定效應岖圈。

3.簡歷要簡潔讹语,最好不要超過兩頁。項目經歷要突出重點(可以具體到某次解決線上問題蜂科,某次優(yōu)化效率提升)顽决,兩到三個為宜,不重要的可以放在工作經歷中一筆帶過导匣。這樣有個好處才菠,即面試官根據項目問的問題就會很集中,在你的預料之中贡定,如果你的項目夸夸    其談寫了很多赋访,那面試官發(fā)揮起來,你就容易被帶著走缓待。

4.很多人不重視個人評價欄目蚓耽,我的技巧是評價最后中帶上自己的博客,個人項目命斧,因為在尾部還是很容易被看到并當做加分項的田晚。

面試流程,其實每個公司大同小異国葬,電話面試,筆試,技術面(可能兩面)汇四,Hr面接奈,部門經理面,可能不同公司有稍微做調整通孽。

這里需要強調兩點:

  1.電話面試序宦,很多大公司都會有電話面試,有些朋友接到面試不管當前情況如何背苦,環(huán)境如何都會爭取這個機會互捌,而我想說的是,如果身邊環(huán)境尚可接了也就接了行剂,但是如果身處鬧市秕噪,或者下班回家地鐵上信號不好,或者自己完全沒有準備厚宰,建議直接回復面試官目前不   合適腌巾,改約其他時間,這么做好處一是沒有環(huán)境影響铲觉,二是自己有心理準備澈蝙。

  2.抓住機會問問題,如果對技術有追求一定要向技術官問清楚項目所使用技術撵幽,問開發(fā)人員上下班時間灯荧。向HR問清楚公司的薪酬福利體系,決定自己開價盐杂。向管理層問清楚項目目前所處的階段漏麦,以及規(guī)劃方向。 面試題概覽况褪,基本上匯總了這次面試中遇到的所有問   題撕贞,中間也有一些是自己當時沒有答上來的,這里只做羅列:

1测垛、什么事面向對象捏膨?主要特征是什么?

面向對象是程序的一種設計方式食侮,它利于提高程序的重用性号涯,使程序結構更加清晰。主要特征:封裝锯七、繼承链快、多態(tài)。

2眉尸、SESSION 與 COOKIE的區(qū)別是什么域蜗,請從協(xié)議巨双,產生的原因與作用說明?

A、http無狀態(tài)協(xié)議霉祸,不能區(qū)分用戶是否是從同一個網站上來的筑累,同一個用戶請求不同的頁面不能看做是同一個用戶丝蹭。

B奔穿、SESSION存儲在服務器端贱田,COOKIE保存在客戶端湘换。Session比較安全彩倚,cookie用某些手段可以修改帆离,不安全哥谷。Session依賴于cookie進行傳遞们妥。

禁用cookie后,session不能正常使用旅赢。Session的缺點:保存在服務器端惑惶,每次讀取都從服務器進行讀取带污,對服務器有資源消耗。Session保存在服務器端的文件或數(shù)據庫中报破,默認保存在文件中,文件路徑由php配置文件的session.save_path指定翘紊。Session文件是公有的帆疟。

3踪宠、HTTP 狀態(tài)中302柳琢、403柬脸、 500代碼含義倒堕?

一二三四五原則:(即一:消息系列垦巴;二:成功系列; 三:重定向系列骤宣;四:請求錯誤系列秦爆;五:服務器端錯誤系列憔披。)

302:臨時轉移成功等限,請求的內容已轉移到新位置

403:禁止訪問

500:服務器內部錯誤

401:代表未授權活逆。

【社群福利】30G-PHP進階資料精刷,助力大家都能30K

4、請寫出數(shù)據類型(int char varchar datetime text)的意思怒允;請問 varchar 和 char有什么區(qū)別?

Int 整數(shù)char 定長字符 Varchar 變長字符 Datetime 日期時間型Text 文本型 Varchar與char的區(qū)別 char是固定長度的字符類型锈遥,分配多少空間纫事,就占用多長空間。Varchar是可變長度的字符類型丽惶,內容有多大就占用多大的空間钾唬,能有效節(jié)省空間。由于varchar類型是可變的儒士,所以在數(shù)據長度改變的時诅福,服務器要進行額外的操作,所以效率比char類型低拖叙。

5氓润、MyISAM和 InnoDB 的基本區(qū)別?索引結構如何實現(xiàn)憋沿?

A旺芽、MyISAM類型不支持事務,表鎖辐啄,易產生碎片采章,要經常優(yōu)化,讀寫速度較快壶辜,適合用于頻繁查詢的應用悯舟;

B、InnoDB類型支持事務砸民,行鎖抵怎,有崩潰恢復能力,讀寫速度比MyISAM慢岭参,適合于插入和更新操作比較多的應用反惕,空間占用大,不支持全文索引等演侯。

創(chuàng)建索引:alert table tablename add index 索引名 (`字段名`)

6姿染、isset() 和 empty() 區(qū)別

sset判斷變量是否存在,可以傳入多個變量秒际,若其中一個變量不存在則返回假悬赏;empty判斷變量是否為空為假狡汉,只可傳一個變量,如果為空為假則返回真闽颇。

https://jq.qq.com/?_wv=1027&k=55dPDrC

7盾戴、請說明 PHP 中傳值與傳引用的區(qū)別。什么時候傳值什么時候傳引用兵多?

按值傳遞:函數(shù)范圍內對值的任何改變在函數(shù)外部都會被忽略

按引用傳遞:函數(shù)范圍內對值的任何改變在函數(shù)外部也能反映出這些修改

優(yōu)缺點:按值傳遞時尖啡,php必須復制值。特別是對于大型的字符串和對象來說中鼠,這將會是一個代價很大的操作可婶。按引用傳遞則不需要復制值沿癞,對于性能提高很有好處援雇。

8、在PHP中error_reporting這個函數(shù)有什么作用椎扬?

設置PHP的報錯級別并返回當前級別惫搏。

9、說說你對緩存技術的了解蚕涤?

緩存技術是將動態(tài)內容緩存到文件中筐赔,在一定時間內訪問動態(tài)頁面直接調用緩存文件,而不必重新訪問數(shù)據庫揖铜。

10茴丰、現(xiàn)在編程中經常采取MVC三層結構,請問MVC分別指哪三層天吓,有什么優(yōu)點贿肩?

MVC三層分別指:業(yè)務模型、視圖龄寞、控制器汰规,由控制器層調用模型處理數(shù)據,然后將數(shù)據映射到視圖層進行顯示物邑,優(yōu)點是:①可以實現(xiàn)代碼的重用性溜哮,避免產生代碼冗余;②M和V的實現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式

很多人在剛接觸這個行業(yè)的時候或者是在遇到瓶頸期的時候,總會遇到一些問題吆倦,比如學了一段時間感覺沒有方向感扳埂,不知道該從那里入手去學習,對此我整理了一些資料满着,需要的可以免費分享給大家(點擊此處加入php高級交流群一起學習交流,11年架構師帶你解讀年薪50萬面試通關秘籍姑子。)

11刚梭、AJAX的優(yōu)勢是什么肠阱?

ajax是異步傳輸技術,可以通過javascript實現(xiàn)朴读,也可以通過JQuery框架實現(xiàn)屹徘,實現(xiàn)局部刷新,減輕了服務器的壓力衅金,也提高了用戶體驗噪伊。

12、在程序的開發(fā)中氮唯,如何提高程序的運行效率鉴吹?

A、優(yōu)化SQL語句惩琉,查詢語句中盡量不使用select *豆励,用哪個字段查哪個字段;少用子查詢可用表連接代替瞒渠;少用模糊查詢良蒸;

B、數(shù)據表中創(chuàng)建索引伍玖;

C嫩痰、對程序中經常用到的數(shù)據生成緩存。

13窍箍、對于大流量的網站,您采用什么樣的方法來解決訪問量問題?

A串纺、有效使用緩存,增加緩存命中率

B椰棘、使用負載均衡

C纺棺、對靜態(tài)文件使用cdn進行存儲和加速

D、想法減少數(shù)據庫的使用

E晰搀、查看出現(xiàn)統(tǒng)計的瓶頸在哪里

F五辽、反向代理

14、語句include和require的區(qū)別是什么?為避免多次包含同一文件外恕,可用什么語句代替它們?

區(qū)別:

在失敗的時候:

include產生一個warning杆逗,而require產生直接產生錯誤中斷

require在運行前載入

include在運行時載入

代替:

require_once

include_once

15、foo()和@foo()之間有什么區(qū)別?

@代表所有warning忽略

16鳞疲、簡述php的垃圾收集機制罪郊。

答案:php中的變量存儲在變量容器zval中,zval中除了存儲變量類型和值外尚洽,還有is_ref和refcount字段悔橄。refcount表示指向變量的元素個數(shù),is_ref表示變量是否有別名。如果refcount為0時癣疟,就回收該變量容器挣柬。如果一個zval的refcount減1之后大于0,它就會進入垃圾緩沖區(qū)睛挚。當緩沖區(qū)達到最大值后邪蛔,回收算法會循環(huán)遍歷zval,判斷其是否為垃圾扎狱,并進行釋放處理侧到。

17、如何實現(xiàn)PHP的安全最大化淤击?怎樣避免SQL注入漏洞和XSS跨站腳本攻擊漏洞匠抗?

答:基本原則:不對外界展示服務器或程序設計細節(jié)(屏蔽錯誤),不相信任何用戶提交的數(shù)據(過濾用戶提交)污抬。

18汞贸、echo、print_r壕吹、print著蛙、var_dump區(qū)別

echo:語句結構;

print:是函數(shù)耳贬,有返回值

print_r:能打印數(shù)組,對象

var_dump:能打印對象數(shù)組猎唁,并且?guī)?shù)據類型

19咒劲、寫出smarty模板的特點

速度快,編譯型诫隅,緩存技術腐魂,插件機制,強大的表現(xiàn)邏輯

20逐纬、PHP如何實現(xiàn)頁面跳轉

方法一:php函數(shù)跳轉蛔屹,缺點,header頭之前不能有輸出豁生,跳轉后的程序繼續(xù)執(zhí)行兔毒,可用exit中斷執(zhí)行后面的程序。

header("Location:網址");//直接跳轉

header("refresh:3;url=http://www.jsdaima.com");//三秒后跳轉

方法二:利用meta

echo"";

21甸箱、如何把一個GB2312格式的字符串裝換成UTF-8格式育叁?

iconv('GB2312','UTF-8','js代碼(http://www.jsdaima.com)是IT資源下載與IT技能學習平臺。');

?>

22芍殖、如果需要原樣輸出用戶輸入的內容豪嗽,在數(shù)據入庫前,要用哪個函數(shù)處理?

htmlspecialchars或者htmlentities

23龟梦、什么是 CSRF 攻擊 隐锭?XSS 攻擊?如何防范计贰?

CSRF成榜,跨站請求偽造,攻擊方偽裝用戶身份發(fā)送請求從而竊取信息或者破壞系統(tǒng)蹦玫。

講述基本原理:用戶訪問A網站登陸并生成了cookie赎婚,再訪問B網站,如果A網站存在CSRF漏洞樱溉,此時B網站給A網站的請求(此時相當于是用戶訪問)挣输,A網站會認為是用戶發(fā)的請求,從而B網站就成功偽裝了你的身份福贞,因此叫跨站腳本攻擊撩嚼。

CSRF防范:

A、合理規(guī)范api請求方式挖帘,GET完丽,POST

B、對POST請求加token令牌驗證拇舀,生成一個隨機碼并存入session逻族,表單中帶上這個隨機碼,提交的時候服務端進行驗證隨機碼是否相同骄崩。

XSS聘鳞,跨站腳本攻擊。

防范:不相信任何輸入要拂,過濾輸入抠璃。

24、安全對一套程序來說至關重要脱惰,請說說在開發(fā)中應該注意哪些安全機制搏嗡?

A、防遠程提交拉一;

B采盒、防SQL注入,對特殊代碼進行過濾舅踪;

C纽甘、防止注冊機灌水,使用驗證碼抽碌。

25悍赢、對json數(shù)據格式的理解决瞳?

JSON(javascript object Notation)是一種輕量級的數(shù)據交換格式,json數(shù)據格式固定左权,可以被多種語言用作數(shù)據的傳遞皮胡。

26、什么是事務赏迟?及其特性屡贺?

答:事務:是一系列的數(shù)據庫操作,是數(shù)據庫應用的基本邏輯單位锌杀。

事務特性:

A甩栈、原子性:即不可分割性,事務要么全部被執(zhí)行糕再,要么就全部不被執(zhí)行量没。

B、一致性或可串性突想。事務的執(zhí)行使得數(shù)據庫從一種正確狀態(tài)轉換成另一種正確狀態(tài)

C殴蹄、隔離性。在事務正確提交之前猾担,不允許把該事務對數(shù)據的任何改變提供給任何其他事務袭灯,

D、持久性绑嘹。事務正確提交后稽荧,其結果將永久保存在數(shù)據庫中,即使在事務提交后有了其他故障圾叼,事務的處理結果也會得到保存蛤克。

或者這樣理解:

事務就是被綁定在一起作為一個邏輯工作單元的SQL語句分組,如果任何一個語句操作失敗那么整個操作就被失敗夷蚊,以后操作就會回滾到操作前狀態(tài),或者是上有個節(jié)點髓介。為了確保要么執(zhí)行惕鼓,要么不執(zhí)行,就可以使用事務唐础。要將有組語句作為事務考慮箱歧,就需要通過ACID測試,即原子性一膨,一致性呀邢,隔離性和持久性。

27豹绪、什么是鎖价淌?

答:數(shù)據庫是一個多用戶使用的共享資源。當多個用戶并發(fā)地存取數(shù)據時,在數(shù)據庫中就會產生多個事務同時存取同一數(shù)據的情況蝉衣。若對并發(fā)操作不加控制就可能會讀取和存儲不正確的數(shù)據括尸,破壞數(shù)據庫的一致性。

加鎖是實現(xiàn)數(shù)據庫并發(fā)控制的一個非常重要的技術病毡。當事務在對某個數(shù)據對象進行操作前濒翻,先向系統(tǒng)發(fā)出請求,對其加鎖啦膜。加鎖后事務就對該數(shù)據對象有了一定的控制有送,在該事務釋放鎖之前,其他的事務不能對此數(shù)據對象進行更新操作僧家。

基本鎖類型:鎖包括行級鎖和表級鎖

28雀摘、索引的作用?和它的優(yōu)點缺點是什么啸臀?

答:索引就一種特殊的查詢表届宠,數(shù)據庫的搜索引擎可以利用它加速對數(shù)據的檢索。它很類似與現(xiàn)實生活中書的目錄乘粒,不需要查詢整本書內容就可以找到想要的數(shù)據豌注。索引可以是唯一的,創(chuàng)建索引允許指定單個列或者是多個列灯萍。缺點是它減慢了數(shù)據錄入的速度轧铁,同時也增加了數(shù)據庫的尺寸大小。

29旦棉、如何通俗地理解三個范式齿风?

第一范式:1NF是對屬性的原子性約束,要求屬性具有原子性绑洛,不可再分解救斑;

第二范式:2NF是對記錄的惟一性約束,要求記錄有惟一標識真屯,即實體的惟一性脸候;

第三范式:3NF是對字段冗余性的約束,即任何字段不能由其他字段派生出來绑蔫,它要求字段沒有冗余运沦。

30、主鍵配深、外鍵和索引的區(qū)別携添?

定義:

主鍵--唯一標識一條記錄,不能有重復的篓叶,不允許為空

外鍵--表的外鍵是另一表的主鍵, 外鍵可以有重復的, 可以是空值

索引--該字段沒有重復值烈掠,但可以有一個空值

作用:

主鍵--用來保證數(shù)據完整性

外鍵--用來和其他表建立聯(lián)系用的

索引--是提高查詢排序的速度

個數(shù):

主鍵--主鍵只能有一個

外鍵--一個表可以有多個外鍵

索引--一個表可以有多個唯一索引

31羞秤、簡述 private、 protected向叉、 public修飾符的訪問權限锥腻。

private : 私有成員, 在類的內部才可以訪問。

protected : 保護成員母谎,該類內部和繼承類中可以訪問瘦黑。

public : 公共成員,完全公開奇唤,沒有訪問限制幸斥。

32、堆和棧的區(qū)別咬扇?

A甲葬、堆是程序運行期間動態(tài)分配的內存空間,你可以根據程序的運行情況確定要分配的堆內存的大行负亍经窖;

B、棧是編譯期間就分配好的內存空間梭灿,因此你的代碼中必須就棧的大小有明確的定義画侣。

33、常用的魔術方法有哪些堡妒?舉例說明

答:php規(guī)定以兩個下劃線(__)開頭的方法都保留為魔術方法配乱,所以建議大家函數(shù)名最好不用__開頭,除非是為了重載已有的魔術方法皮迟。

__construct() 實例化類時自動調用搬泥。

__destruct() 類對象使用結束時自動調用。

__set() 在給未定義的屬性賦值的時候調用伏尼。

__get() 調用未定義的屬性時候調用忿檩。

__isset() 使用isset()或empty()函數(shù)時候會調用。

__unset() 使用unset()時候會調用爆阶。

__sleep() 使用serialize序列化時候調用休溶。

__wakeup() 使用unserialize反序列化的時候調用。

__call() 調用一個不存在的方法的時候調用扰她。

__callStatic()調用一個不存在的靜態(tài)方法是調用。

__toString() 把對象轉換成字符串的時候會調用芭碍。比如 echo徒役。

__invoke() 當嘗試把對象當方法調用時調用。

__set_state() 當使用var_export()函數(shù)時候調用窖壕。接受一個數(shù)組參數(shù)忧勿。

__clone() 當使用clone復制一個對象時候調用杉女。

34、$this和self鸳吸、parent這三個關鍵詞分別代表什么熏挎?在哪些場合下使用?

$this 當前對象

self 當前類

parent 當前類的父類

$this在當前類中使用,使用->調用屬性和方法

self也在當前類中使用晌砾,不過需要使用::調用

parent在類中使用

35坎拐、作用域操作符::如何使用?都在哪些場合下使用养匈?

調用類常量

調用靜態(tài)方法

36哼勇、__autoload()方法的工作原理是什么?

答:使用這個魔術函數(shù)的基本條件是類文件的文件名要和類的名字保持一致呕乎。

當程序執(zhí)行到實例化某個類的時候积担,如果在實例化前沒有引入這個類文件,那么就自動執(zhí)行__autoload()函數(shù)猬仁。

這個函數(shù)會根據實例化的類的名稱來查找這個類文件的路徑帝璧,當判斷這個類文件路徑下確實存在這個類文件后

就執(zhí)行include或者require來載入該類,然后程序繼續(xù)執(zhí)行湿刽,如果這個路徑下不存在該文件時就提示錯誤的烁。

使用自動載入的魔術函數(shù)可以不必要寫很多個include或者require函數(shù)。

37叭爱、簡述高并發(fā)網站解決方案撮躁。

A、前端優(yōu)化(CND加速买雾、建立獨立圖片服務器)

B把曼、服務端優(yōu)化(頁面靜態(tài)化、并發(fā)處理[異步|多線程]漓穿、隊列處理)

C嗤军、數(shù)據庫優(yōu)化(數(shù)據庫緩存[Memcachaed|Redis]、讀寫分離晃危、分庫分表叙赚、分區(qū))

D、Web服務器優(yōu)化(負載均衡僚饭、反向代理)

38震叮、PHP遍歷文件夾下所有文件

<?php

function read_all($dir){

if(!is_dir($dir)) return false;

? ? $handle = opendir($dir);

if($handle){

while(($fl = readdir($handle)) !== false){

? ? ? ? ? ? $temp = $dir.$fl;

//$fl !='.' && $fl != '..' 排除當前目錄及父級目錄

if(is_dir($temp) && $fl!='.' && $fl != '..'){

? ? ? ? ? ? ? ? echo '目錄:'.$temp.'<br>';

? ? ? ? ? ? ? ? read_all($temp);

}else{

if($fl !='.' && $fl != '..'){

? ? ? ? ? ? ? ? ? ? echo '文件:'.$temp.'<br>';

}

}

}

}

}

read_all("./dir/");

?>

復制代碼

39、在命令行中運行php程序

php indx.php

A鳍鸵、從命令行運行php非常簡單苇瓣。但有些注意事項需要各位了解下,諸如$_SESSION之類的服務器變量是無法在命令行中使用的偿乖,其他代碼的運行則和web服務器中完全一樣击罪;

B哲嘲、在命令行中執(zhí)行php文件的好處之一就是可以通過腳本實現(xiàn)一些計劃任務(crontab)的執(zhí)行,而無須通過web服務器媳禁。

延伸1:

php -v 顯示當前PHP版本

php -m 顯示當前php加載的有效模塊

php -i 輸出無html格式的phpinfo

php --rf function

延伸2:向php腳本傳遞參數(shù):

提示:命令行下執(zhí)行php眠副,是不走Apache/Nginx等這類東西的,沒有什么http協(xié)議竣稽,所以get,post傳參數(shù)根本不起作用囱怕,并且還會報錯。有些時候需要在shell命令下把PHP當作腳本執(zhí)行丧枪,比如定時任務光涂。這就涉及到在shell命令下如何給php傳參的問題,通常有三種方式傳參拧烦。

A忘闻、使用$argv or $argc參數(shù)接收

echo "接收到{$argc}個參數(shù)";

print_r($argv);

?>

B、使用getopt函數(shù)

$param_arr = getopt('a:b:');

print_r($param_arr);

?>

C恋博、提示用戶輸入

fwrite(STDOUT,'Please enter your name:');

echo 'Your name is:'.fgets(STDIN);

?>

40齐佳、你用什么方法檢查PHP腳本的執(zhí)行效率(通常是腳本執(zhí)行時間)和數(shù)據庫SQL的效率(通常是數(shù)據庫Query時間),并定位和分析腳本執(zhí)行和數(shù)據庫查詢的瓶頸所在债沮?

A炼吴、PHP腳本的執(zhí)行效率

a、代碼腳本里計時疫衩;

b硅蹦、xdebug統(tǒng)計函數(shù)執(zhí)行次數(shù)和具體時間進行分析,最好使用工具winCacheGrind分析闷煤;

c童芹、在線系統(tǒng)用strace跟蹤相關進程的具體系統(tǒng)調用。

B鲤拿、數(shù)據庫SQL的效率

a假褪、sql的explain(mysql),啟用slow query log記錄慢查詢近顷;

b生音、通常還要看數(shù)據庫設計是否合理,需求是否合理等窒升。

41缀遍、對于大流量的網站,您采用什么樣的方法來解決各頁面訪問量統(tǒng)計問題饱须。

A瑟由、確認服務器是否能支撐當前訪問量;

B、優(yōu)化數(shù)據庫訪問歹苦;

C、禁止外部訪問鏈接(盜鏈), 比如圖片防盜鏈督怜;

D殴瘦、控制文件下載,尤其是大文件号杠;

E蚪腋、使用不同主機分流(負載均衡);

F姨蟋、使用瀏覽統(tǒng)計軟件屉凯,了解訪問量,有針對性的進行優(yōu)化眼溶。

42悠砚、 MySQL數(shù)據庫作發(fā)布系統(tǒng)的存儲,一天五萬條以上的增量堂飞,預計運維三年,怎么優(yōu)化灌旧?

A、設計良好的數(shù)據庫結構绰筛,允許部分數(shù)據冗余枢泰,盡量避免join查詢,提高效率铝噩;

B衡蚂、選擇合適的表字段數(shù)據類型和存儲引擎,適當?shù)奶砑铀饕?/p>

C骏庸、mysql庫主從讀寫分離毛甲;

D、找規(guī)律分表敞恋,減少單表中的數(shù)據量提高查詢速度丽啡;

E、添加緩存機制硬猫,比如memcached补箍,redis等;

F啸蜜、不經常改動的頁面坑雅,生成靜態(tài)頁面;

G衬横、書寫高效率的SQL裹粤。比如 SELECT * FROM TABEL 改為 SELECT field_1, field_2, field_3 FROM TABLE。

43蜂林、Mysql的存儲引擎,myisam和innodb的區(qū)別遥诉。

A拇泣、MyISAM類型不支持事務處理等高級處理,而InnoDB類型支持矮锈;

B霉翔、MyISAM類型的表強調的是性能,其執(zhí)行速度比InnoDB類型更快苞笨;

C债朵、InnoDB不支持FULLTEXT類型的索引;

D瀑凝、InnoDB中不保存表的具體行數(shù)序芦,也就是說,執(zhí)行select count(*) from table時粤咪,InnoDB要掃描一遍整個表來計算有多少行谚中,但是MyISAM只要簡單的讀出保存好的行數(shù)即可;

E射窒、對于AUTO_INCREMENT類型的字段藏杖,InnoDB中必須包含只有該字段的索引,但是在MyISAM表中脉顿,可以和其他字段一起建立聯(lián)合索引蝌麸;

F、DELETE FROM table時艾疟,InnoDB不會重新建立表来吩,而是一行一行的刪除;

G蔽莱、LOAD TABLE FROM MASTER操作對InnoDB是不起作用的弟疆,解決方法是首先把InnoDB表改成MyISAM表,導入數(shù)據后再改成InnoDB表盗冷,但是對于使用的額外的InnoDB特性(例如外鍵)的表不適用怠苔;

H、MyISAM支持表鎖仪糖,InnoDB支持行鎖柑司。

MyISAM:成熟、穩(wěn)定锅劝、易于管理攒驰,快速讀取。一些功能不支持(事務等)故爵,表級鎖玻粪。

InnoDB:支持事務、外鍵等特性、數(shù)據行鎖定劲室÷兹裕空間占用大,不支持全文索引等痹籍。

其他呢铆,主要是一些面試后的個人看法和玄學了:

1.很多在職的同學覺得請假面試麻煩,其實現(xiàn)在很多公司都有安排晚上面試和周末面試專場的蹲缠,提前溝通好就行了,請假的話一天面試三家應該不是問題悠垛。

2.投遞公司的順序建議线定,首先是一兩家公司預熱一下,然后比較心儀的很有把握的公司确买,然后才是非常心儀的公司斤讥,最后是選擇 性的面試。安排這個順序主要是湾趾,雖然可能你業(yè)務很厲害芭商,但是進入面試狀態(tài)時需要一個過程的,面試預熱很有必要搀缠,這里順便強調下面試提前準備铛楣,比如看下面試題,復習下技術書籍都很有必要的艺普。提前選擇比較心儀的很有把握的公司簸州,主要是為了拿到offer,一是做自我價值驗證歧譬,二是心中有底氣岸浑。

3.調整好心態(tài),其實有些offer是帶有運氣成分的瑰步,畢竟對于有些體量公司來說矢洲,面試常有,編制不常有缩焦,所以拿不到offer也不要氣餒读虏。

最后,祝所有大家在面試中過關斬將舌界,拿到心儀offer掘譬。

如果喜歡我的文章,想與一群資深開發(fā)者一起交流學習的話呻拌,獲取更多相關大廠面試咨詢和指導葱轩,歡迎加入我的學習交流群556094961

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子靴拱,更是在濱河造成了極大的恐慌垃喊,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袜炕,死亡現(xiàn)場離奇詭異本谜,居然都是意外死亡,警方通過查閱死者的電腦和手機偎窘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門乌助,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人陌知,你說我怎么就攤上這事他托。” “怎么了仆葡?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵赏参,是天一觀的道長。 經常有香客問我沿盅,道長把篓,這世上最難降的妖魔是什么腰涧? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任韧掩,我火速辦了婚禮,結果婚禮上南窗,老公的妹妹穿的比我還像新娘揍很。我一直安慰自己,他們只是感情好万伤,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布窒悔。 她就那樣靜靜地躺著,像睡著了一般敌买。 火紅的嫁衣襯著肌膚如雪简珠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天虹钮,我揣著相機與錄音聋庵,去河邊找鬼。 笑死芙粱,一個胖子當著我的面吹牛祭玉,可吹牛的內容都是我干的。 我是一名探鬼主播春畔,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼脱货,長吁一口氣:“原來是場噩夢啊……” “哼岛都!你這毒婦竟也來了?” 一聲冷哼從身側響起振峻,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤臼疫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后扣孟,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烫堤,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年凤价,在試婚紗的時候發(fā)現(xiàn)自己被綠了鸽斟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡利诺,死狀恐怖湾盗,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情立轧,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布躏吊,位于F島的核電站氛改,受9級特大地震影響,放射性物質發(fā)生泄漏比伏。R本人自食惡果不足惜胜卤,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赁项。 院中可真熱鬧葛躏,春花似錦、人聲如沸悠菜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悔醋。三九已至摩窃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芬骄,已是汗流浹背猾愿。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留账阻,地道東北人蒂秘。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像淘太,于是被迫代替她去往敵國和親皇钞。 傳聞我的和親對象是個殘疾皇子沦疾,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353