欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

PHP有哪些面試題及答案

今天小編給大家分享一下PHP有哪些面試題及答案的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有龍湖免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

PHP有哪些面試題及答案

1、什么事面向?qū)ο螅恐饕卣魇鞘裁矗?/strong>

面向?qū)ο笫浅绦虻囊环N設(shè)計(jì)方式,它利于提高程序的重用性,使程序結(jié)構(gòu)更加清晰。主要特征:封裝、繼承、多態(tài)。

2、SESSION 與 COOKIE的區(qū)別是什么,請(qǐng)從協(xié)議,產(chǎn)生的原因與作用說明?

A、http無狀態(tài)協(xié)議,不能區(qū)分用戶是否是從同一個(gè)網(wǎng)站上來的,同一個(gè)用戶請(qǐng)求不同的頁面不能看做是同一個(gè)用戶。

B、SESSION存儲(chǔ)在服務(wù)器端,COOKIE保存在客戶端。Session比較安全,cookie用某些手段可以修改,不安全。Session依賴于cookie進(jìn)行傳遞。

禁用cookie后,session不能正常使用。Session的缺點(diǎn):保存在服務(wù)器端,每次讀取都從服務(wù)器進(jìn)行讀取,對(duì)服務(wù)器有資源消耗。Session保存在服務(wù)器端的文件或數(shù)據(jù)庫中,默認(rèn)保存在文件中,文件路徑由php配置文件的session.save_path指定。Session文件是公有的。

3、HTTP 狀態(tài)中302、403、 500代碼含義?

一二三四五原則:(即一:消息系列;二:成功系列; 三:重定向系列;四:請(qǐng)求錯(cuò)誤系列;五:服務(wù)器端錯(cuò)誤系列。)

  • 302:臨時(shí)轉(zhuǎn)移成功,請(qǐng)求的內(nèi)容已轉(zhuǎn)移到新位置

  • 403:禁止訪問

  • 500:服務(wù)器內(nèi)部錯(cuò)誤

  • 401:代表未授權(quán)。

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

Int 整數(shù)char 定長字符 Varchar 變長字符 Datetime 日期時(shí)間型Text 文本型 Varchar與char的區(qū)別 char是固定長度的字符類型,分配多少空間,就占用多長空間。Varchar是可變長度的字符類型,內(nèi)容有多大就占用多大的空間,能有效節(jié)省空間。由于varchar類型是可變的,所以在數(shù)據(jù)長度改變的時(shí),服務(wù)器要進(jìn)行額外的操作,所以效率比char類型低。

5、MyISAM和 InnoDB 的基本區(qū)別?索引結(jié)構(gòu)如何實(shí)現(xiàn)?

A、MyISAM類型不支持事務(wù),表鎖,易產(chǎn)生碎片,要經(jīng)常優(yōu)化,讀寫速度較快,適合用于頻繁查詢的應(yīng)用;

B、InnoDB類型支持事務(wù),行鎖,有崩潰恢復(fù)能力,讀寫速度比MyISAM慢,適合于插入和更新操作比較多的應(yīng)用,空間占用大,不支持全文索引等。
創(chuàng)建索引:alert table tablename add index 索引名 (`字段名`)

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

sset判斷變量是否存在,可以傳入多個(gè)變量,若其中一個(gè)變量不存在則返回假;empty判斷變量是否為空為假,只可傳一個(gè)變量,如果為空為假則返回真。

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

7、請(qǐng)說明 PHP 中傳值與傳引用的區(qū)別。什么時(shí)候傳值什么時(shí)候傳引用?

  • 按值傳遞:函數(shù)范圍內(nèi)對(duì)值的任何改變?cè)诤瘮?shù)外部都會(huì)被忽略

  • 按引用傳遞:函數(shù)范圍內(nèi)對(duì)值的任何改變?cè)诤瘮?shù)外部也能反映出這些修改

優(yōu)缺點(diǎn):按值傳遞時(shí),php必須復(fù)制值。特別是對(duì)于大型的字符串和對(duì)象來說,這將會(huì)是一個(gè)代價(jià)很大的操作。按引用傳遞則不需要復(fù)制值,對(duì)于性能提高很有好處。

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

設(shè)置PHP的報(bào)錯(cuò)級(jí)別并返回當(dāng)前級(jí)別。

9、說說你對(duì)緩存技術(shù)的了解?

緩存技術(shù)是將動(dòng)態(tài)內(nèi)容緩存到文件中,在一定時(shí)間內(nèi)訪問動(dòng)態(tài)頁面直接調(diào)用緩存文件,而不必重新訪問數(shù)據(jù)庫。

10、現(xiàn)在編程中經(jīng)常采取MVC三層結(jié)構(gòu),請(qǐng)問MVC分別指哪三層,有什么優(yōu)點(diǎn)?

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

11、AJAX的優(yōu)勢(shì)是什么?

ajax是異步傳輸技術(shù),可以通過javascript實(shí)現(xiàn),也可以通過JQuery框架實(shí)現(xiàn),實(shí)現(xiàn)局部刷新,減輕了服務(wù)器的壓力,也提高了用戶體驗(yàn)。

12、在程序的開發(fā)中,如何提高程序的運(yùn)行效率?

A、優(yōu)化SQL語句,查詢語句中盡量不使用select *,用哪個(gè)字段查哪個(gè)字段;少用子查詢可用表連接代替;少用模糊查詢;

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

C、對(duì)程序中經(jīng)常用到的數(shù)據(jù)生成緩存。

13、對(duì)于大流量的網(wǎng)站,您采用什么樣的方法來解決訪問量問題?

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

B、使用負(fù)載均衡

C、對(duì)靜態(tài)文件使用cdn進(jìn)行存儲(chǔ)和加速

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

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

F、反向代理

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

區(qū)別:

在失敗的時(shí)候:

  • include產(chǎn)生一個(gè)warning,而require產(chǎn)生直接產(chǎn)生錯(cuò)誤中斷

  • require在運(yùn)行前載入

  • include在運(yùn)行時(shí)載入

代替:

  • require_once

  • include_once

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

@代表所有warning忽略

16、簡述php的垃圾收集機(jī)制。

答案:php中的變量存儲(chǔ)在變量容器zval中,zval中除了存儲(chǔ)變量類型和值外,還有is_ref和refcount字段。refcount表示指向變量的元素個(gè)數(shù),is_ref表示變量是否有別名。如果refcount為0時(shí),就回收該變量容器。如果一個(gè)zval的refcount減1之后大于0,它就會(huì)進(jìn)入垃圾緩沖區(qū)。當(dāng)緩沖區(qū)達(dá)到最大值后,回收算法會(huì)循環(huán)遍歷zval,判斷其是否為垃圾,并進(jìn)行釋放處理。

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

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

18、echo、print_r、print、var_dump區(qū)別

  • echo:語句結(jié)構(gòu);

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

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

  • var_dump:能打印對(duì)象數(shù)組,并且?guī)?shù)據(jù)類型

19、寫出smarty模板的特點(diǎn)

速度快,編譯型,緩存技術(shù),插件機(jī)制,強(qiáng)大的表現(xiàn)邏輯

20、PHP如何實(shí)現(xiàn)頁面跳轉(zhuǎn)

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

header("Location:網(wǎng)址");//直接跳轉(zhuǎn)
header("refresh:3;url=http://www.jsdaima.com");//三秒后跳轉(zhuǎn)

方法二:利用meta

echo"";

21、如何把一個(gè)GB2312格式的字符串裝換成UTF-8格式?

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

22、如果需要原樣輸出用戶輸入的內(nèi)容,在數(shù)據(jù)入庫前,要用哪個(gè)函數(shù)處理?

htmlspecialchars或者h(yuǎn)tmlentities

23、什么是 CSRF 攻擊 ?XSS 攻擊?如何防范?

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

講述基本原理:用戶訪問A網(wǎng)站登陸并生成了cookie,再訪問B網(wǎng)站,如果A網(wǎng)站存在CSRF漏洞,此時(shí)B網(wǎng)站給A網(wǎng)站的請(qǐng)求(此時(shí)相當(dāng)于是用戶訪問),A網(wǎng)站會(huì)認(rèn)為是用戶發(fā)的請(qǐng)求,從而B網(wǎng)站就成功偽裝了你的身份,因此叫跨站腳本攻擊。

CSRF防范:

A、合理規(guī)范api請(qǐng)求方式,GET,POST

B、對(duì)POST請(qǐng)求加token令牌驗(yàn)證,生成一個(gè)隨機(jī)碼并存入session,表單中帶上這個(gè)隨機(jī)碼,提交的時(shí)候服務(wù)端進(jìn)行驗(yàn)證隨機(jī)碼是否相同。

XSS,跨站腳本攻擊。

防范:不相信任何輸入,過濾輸入。

24、安全對(duì)一套程序來說至關(guān)重要,請(qǐng)說說在開發(fā)中應(yīng)該注意哪些安全機(jī)制?

A、防遠(yuǎn)程提交;
B、防SQL注入,對(duì)特殊代碼進(jìn)行過濾;
C、防止注冊(cè)機(jī)灌水,使用驗(yàn)證碼。

25、對(duì)json數(shù)據(jù)格式的理解?

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

26、什么是事務(wù)?及其特性?

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

事務(wù)特性:

A、原子性:即不可分割性,事務(wù)要么全部被執(zhí)行,要么就全部不被執(zhí)行。
B、一致性或可串性。事務(wù)的執(zhí)行使得數(shù)據(jù)庫從一種正確狀態(tài)轉(zhuǎn)換成另一種正確狀態(tài)
C、隔離性。在事務(wù)正確提交之前,不允許把該事務(wù)對(duì)數(shù)據(jù)的任何改變提供給任何其他事務(wù),
D、持久性。事務(wù)正確提交后,其結(jié)果將永久保存在數(shù)據(jù)庫中,即使在事務(wù)提交后有了其他故障,事務(wù)的處理結(jié)果也會(huì)得到保存。

或者這樣理解:

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

27、什么是鎖?

答:數(shù)據(jù)庫是一個(gè)多用戶使用的共享資源。當(dāng)多個(gè)用戶并發(fā)地存取數(shù)據(jù)時(shí),在數(shù)據(jù)庫中就會(huì)產(chǎn)生多個(gè)事務(wù)同時(shí)存取同一數(shù)據(jù)的情況。若對(duì)并發(fā)操作不加控制就可能會(huì)讀取和存儲(chǔ)不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。

加鎖是實(shí)現(xiàn)數(shù)據(jù)庫并發(fā)控制的一個(gè)非常重要的技術(shù)。當(dāng)事務(wù)在對(duì)某個(gè)數(shù)據(jù)對(duì)象進(jìn)行操作前,先向系統(tǒng)發(fā)出請(qǐng)求,對(duì)其加鎖。加鎖后事務(wù)就對(duì)該數(shù)據(jù)對(duì)象有了一定的控制,在該事務(wù)釋放鎖之前,其他的事務(wù)不能對(duì)此數(shù)據(jù)對(duì)象進(jìn)行更新操作。

基本鎖類型:鎖包括行級(jí)鎖和表級(jí)鎖

28、索引的作用?和它的優(yōu)點(diǎn)缺點(diǎn)是什么?

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

29、如何通俗地理解三個(gè)范式?

第一范式:1NF是對(duì)屬性的原子性約束,要求屬性具有原子性,不可再分解;
第二范式:2NF是對(duì)記錄的惟一性約束,要求記錄有惟一標(biāo)識(shí),即實(shí)體的惟一性;
第三范式:3NF是對(duì)字段冗余性的約束,即任何字段不能由其他字段派生出來,它要求字段沒有冗余。

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

定義:
主鍵--唯一標(biāo)識(shí)一條記錄,不能有重復(fù)的,不允許為空
外鍵--表的外鍵是另一表的主鍵, 外鍵可以有重復(fù)的, 可以是空值
索引--該字段沒有重復(fù)值,但可以有一個(gè)空值

作用:
主鍵--用來保證數(shù)據(jù)完整性
外鍵--用來和其他表建立聯(lián)系用的
索引--是提高查詢排序的速度

個(gè)數(shù):
主鍵--主鍵只能有一個(gè)
外鍵--一個(gè)表可以有多個(gè)外鍵
索引--一個(gè)表可以有多個(gè)唯一索引

31、簡述 private、 protected、 public修飾符的訪問權(quán)限。

private : 私有成員, 在類的內(nèi)部才可以訪問。
protected : 保護(hù)成員,該類內(nèi)部和繼承類中可以訪問。
public : 公共成員,完全公開,沒有訪問限制。

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

A、堆是程序運(yùn)行期間動(dòng)態(tài)分配的內(nèi)存空間,你可以根據(jù)程序的運(yùn)行情況確定要分配的堆內(nèi)存的大小;
B、棧是編譯期間就分配好的內(nèi)存空間,因此你的代碼中必須就棧的大小有明確的定義。

33、常用的魔術(shù)方法有哪些?舉例說明

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

__construct() 實(shí)例化類時(shí)自動(dòng)調(diào)用。
__destruct() 類對(duì)象使用結(jié)束時(shí)自動(dòng)調(diào)用。
__set() 在給未定義的屬性賦值的時(shí)候調(diào)用。
__get() 調(diào)用未定義的屬性時(shí)候調(diào)用。
__isset() 使用isset()或empty()函數(shù)時(shí)候會(huì)調(diào)用。
__unset() 使用unset()時(shí)候會(huì)調(diào)用。
__sleep() 使用serialize序列化時(shí)候調(diào)用。
__wakeup() 使用unserialize反序列化的時(shí)候調(diào)用。
__call() 調(diào)用一個(gè)不存在的方法的時(shí)候調(diào)用。
__callStatic()調(diào)用一個(gè)不存在的靜態(tài)方法是調(diào)用。
__toString() 把對(duì)象轉(zhuǎn)換成字符串的時(shí)候會(huì)調(diào)用。比如 echo。
__invoke() 當(dāng)嘗試把對(duì)象當(dāng)方法調(diào)用時(shí)調(diào)用。
__set_state() 當(dāng)使用var_export()函數(shù)時(shí)候調(diào)用。接受一個(gè)數(shù)組參數(shù)。
__clone() 當(dāng)使用clone復(fù)制一個(gè)對(duì)象時(shí)候調(diào)用。

34、$this和self、parent這三個(gè)關(guān)鍵詞分別代表什么?在哪些場合下使用?

$this 當(dāng)前對(duì)象
self 當(dāng)前類
parent 當(dāng)前類的父類

$this在當(dāng)前類中使用,使用->調(diào)用屬性和方法
self也在當(dāng)前類中使用,不過需要使用::調(diào)用
parent在類中使用

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

調(diào)用類常量
調(diào)用靜態(tài)方法

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

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

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

這個(gè)函數(shù)會(huì)根據(jù)實(shí)例化的類的名稱來查找這個(gè)類文件的路徑,當(dāng)判斷這個(gè)類文件路徑下確實(shí)存在這個(gè)類文件后

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

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

37、簡述高并發(fā)網(wǎng)站解決方案。

A、前端優(yōu)化(CND加速、建立獨(dú)立圖片服務(wù)器)
B、服務(wù)端優(yōu)化(頁面靜態(tài)化、并發(fā)處理[異步|多線程]、隊(duì)列處理)
C、數(shù)據(jù)庫優(yōu)化(數(shù)據(jù)庫緩存[Memcachaed|redis]、讀寫分離、分庫分表、分區(qū))
D、Web服務(wù)器優(yōu)化(負(fù)載均衡、反向代理)

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 != '..' 排除當(dāng)前目錄及父級(jí)目錄
            if(is_dir($temp) && $fl!='.' && $fl != '..'){
                echo '目錄:'.$temp.'<br>';
                read_all($temp);
            }else{
                if($fl !='.' && $fl != '..'){
                    echo '文件:'.$temp.'<br>';
                }
            }
        }
    }
}
read_all("./dir/");
?>

39、在命令行中運(yùn)行php程序

php indx.php

A、從命令行運(yùn)行php非常簡單。但有些注意事項(xiàng)需要各位了解下,諸如$_SESSION之類的服務(wù)器變量是無法在命令行中使用的,其他代碼的運(yùn)行則和web服務(wù)器中完全一樣;
B、在命令行中執(zhí)行php文件的好處之一就是可以通過腳本實(shí)現(xiàn)一些計(jì)劃任務(wù)(crontab)的執(zhí)行,而無須通過web服務(wù)器。

延伸1:
php -v 顯示當(dāng)前PHP版本
php -m 顯示當(dāng)前php加載的有效模塊
php -i 輸出無html格式的phpinfo
php --rf function

延伸2:向php腳本傳遞參數(shù):
提示:命令行下執(zhí)行php,是不走Apache/Nginx等這類東西的,沒有什么http協(xié)議,所以get,post傳參數(shù)根本不起作用,并且還會(huì)報(bào)錯(cuò)。有些時(shí)候需要在shell命令下把PHP當(dāng)作腳本執(zhí)行,比如定時(shí)任務(wù)。這就涉及到在shell命令下如何給php傳參的問題,通常有三種方式傳參。

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

echo "接收到{$argc}個(gè)參數(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í)間)和數(shù)據(jù)庫SQL的效率(通常是數(shù)據(jù)庫Query時(shí)間),并定位和分析腳本執(zhí)行和數(shù)據(jù)庫查詢的瓶頸所在?

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

  • a、代碼腳本里計(jì)時(shí);

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

  • c、在線系統(tǒng)用strace跟蹤相關(guān)進(jìn)程的具體系統(tǒng)調(diào)用。

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

  • a、sql的explain(MySQL),啟用slow query log記錄慢查詢;

  • b、通常還要看數(shù)據(jù)庫設(shè)計(jì)是否合理,需求是否合理等。

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

A、確認(rèn)服務(wù)器是否能支撐當(dāng)前訪問量;
B、優(yōu)化數(shù)據(jù)庫訪問;
C、禁止外部訪問鏈接(盜鏈), 比如圖片防盜鏈;
D、控制文件下載,尤其是大文件;
E、使用不同主機(jī)分流(負(fù)載均衡);
F、使用瀏覽統(tǒng)計(jì)軟件,了解訪問量,有針對(duì)性的進(jìn)行優(yōu)化。

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

A、設(shè)計(jì)良好的數(shù)據(jù)庫結(jié)構(gòu),允許部分?jǐn)?shù)據(jù)冗余,盡量避免join查詢,提高效率;
B、選擇合適的表字段數(shù)據(jù)類型和存儲(chǔ)引擎,適當(dāng)?shù)奶砑铀饕?br/>C、mysql庫主從讀寫分離;
D、找規(guī)律分表,減少單表中的數(shù)據(jù)量提高查詢速度;
E、添加緩存機(jī)制,比如memcached,redis等;
F、不經(jīng)常改動(dòng)的頁面,生成靜態(tài)頁面;
G、書寫高效率的SQL。比如 SELECT * FROM TABEL 改為 SELECT field_1, field_2, field_3 FROM TABLE。

43、Mysql的存儲(chǔ)引擎,myisam和innodb的區(qū)別。

A、MyISAM類型不支持事務(wù)處理等高級(jí)處理,而InnoDB類型支持;

B、MyISAM類型的表強(qiáng)調(diào)的是性能,其執(zhí)行速度比InnoDB類型更快;

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

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

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

F、DELETE FROM table時(shí),InnoDB不會(huì)重新建立表,而是一行一行的刪除;

G、LOAD TABLE FROM MASTER操作對(duì)InnoDB是不起作用的,解決方法是首先把InnoDB表改成MyISAM表,導(dǎo)入數(shù)據(jù)后再改成InnoDB表,但是對(duì)于使用的額外的InnoDB特性(例如外鍵)的表不適用;

H、MyISAM支持表鎖,InnoDB支持行鎖。

MyISAM:成熟、穩(wěn)定、易于管理,快速讀取。一些功能不支持(事務(wù)等),表級(jí)鎖。
InnoDB:支持事務(wù)、外鍵等特性、數(shù)據(jù)行鎖定。空間占用大,不支持全文索引等。

其他,主要是一些面試后的個(gè)人看法和玄學(xué)了:

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

2.投遞公司的順序建議,首先是一兩家公司預(yù)熱一下,然后比較心儀的很有把握的公司,然后才是非常心儀的公司,最后是選擇 性的面試。安排這個(gè)順序主要是,雖然可能你業(yè)務(wù)很厲害,但是進(jìn)入面試狀態(tài)時(shí)需要一個(gè)過程的,面試預(yù)熱很有必要,這里順便強(qiáng)調(diào)下面試提前準(zhǔn)備,比如看下面試題,復(fù)習(xí)下技術(shù)書籍都很有必要的。提前選擇比較心儀的很有把握的公司,主要是為了拿到offer,一是做自我價(jià)值驗(yàn)證,二是心中有底氣。

3.調(diào)整好心態(tài),其實(shí)有些offer是帶有運(yùn)氣成分的,畢竟對(duì)于有些體量公司來說,面試常有,編制不常有,所以拿不到offer也不要?dú)怵H。

以上就是“PHP有哪些面試題及答案”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站題目:PHP有哪些面試題及答案
分享URL:http://www.chinadenli.net/article12/jogogc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站用戶體驗(yàn)虛擬主機(jī)外貿(mào)建站品牌網(wǎng)站設(shè)計(jì)網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)