計(jì)算機(jī)基礎(chǔ)知識(shí)面試題庫_第1頁
計(jì)算機(jī)基礎(chǔ)知識(shí)面試題庫_第2頁
計(jì)算機(jī)基礎(chǔ)知識(shí)面試題庫_第3頁
計(jì)算機(jī)基礎(chǔ)知識(shí)面試題庫_第4頁
計(jì)算機(jī)基礎(chǔ)知識(shí)面試題庫_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

對于工程

1.明確你的工程到底是做什么的,有哪些功能

2.明確你的工程的整體架構(gòu),在面試的時(shí)候能夠清楚地畫給面試官看并且清楚

地指出從哪里調(diào)用到哪里、使用什么方式調(diào)用

3.明確你的模塊在整個(gè)工程中所處的位置及作用

4.明確你的模塊用到了哪些技術(shù),更好一些的可以再了解一下整個(gè)工程用到了

哪些技術(shù)

操作系統(tǒng)

1.操作系統(tǒng)的四大特性:

a)并發(fā)性

b)共享性

c)虛擬性

d)不確定性

2.請表達(dá)一下并發(fā)和并行兩個(gè)概念的區(qū)別?

a)并行是指兩個(gè)或多個(gè)事件在同一時(shí)刻發(fā)生,并發(fā)是指兩個(gè)或多個(gè)事件在同一時(shí)間間

隔發(fā)生。

3.什么是進(jìn)程?什么是線程?

a)“進(jìn)程是一個(gè)可并發(fā)執(zhí)行的,具有獨(dú)立功能的程序關(guān)于*個(gè)數(shù)據(jù)集合的一次執(zhí)行過

程'也是操作系統(tǒng)進(jìn)展資源分配和調(diào)度的獨(dú)立單位“迸程是資源分配的根本單位"

b)線程也稱為輕量級進(jìn)程(LNP),是程序執(zhí)行流量的最小單位,它是進(jìn)程的一個(gè)實(shí)體,

是系統(tǒng)獨(dú)立調(diào)度和分派公理機(jī)的根本單位。線程是操作系統(tǒng)調(diào)度的最小單位?

4.進(jìn)程和線程的區(qū)別?從調(diào)度、并發(fā)性、擁有資源和系統(tǒng)開銷四個(gè)方面來比擬:

a)調(diào)度。在引入線程的操作系統(tǒng)中,把線程作為調(diào)度和分派CPU的根本單位,把進(jìn)程

作為資源分配的根本單位,顯著提高了并發(fā)程度。由于系統(tǒng)調(diào)度的根本單位是線程,

所以每個(gè)進(jìn)程至少創(chuàng)立一個(gè)線程,否則無法被調(diào)度。

b)并發(fā)性。多線程可以提高效勞的質(zhì)量,在一個(gè)線程限寒時(shí),還有其他線程提供效勞。

c)擁有資源。迸程是擁有資源的獨(dú)立單位,線程自己不擁有系統(tǒng)資源,而是共享進(jìn)程

的資源(包括代碼段、數(shù)據(jù)段即系統(tǒng)資源等)。

d)系統(tǒng)開銷。進(jìn)程切換的開銷遠(yuǎn)遠(yuǎn)大于線程切換的開銷,進(jìn)程的切換需要保存很多現(xiàn)

場,但線程只需要保存和設(shè)置少量的存放器容,不涉及存儲(chǔ)器管理方面的操作。

5.進(jìn)程的特征:

a)動(dòng)態(tài)性:進(jìn)程是云力態(tài)產(chǎn)生和動(dòng)態(tài)消亡的,有其生存周期。

b)并發(fā)性:一個(gè)進(jìn)程可以與其他進(jìn)程一起向前推進(jìn)。

c)獨(dú)立性:一個(gè)進(jìn)程是一個(gè)相對完整的調(diào)度單位。

d)異步性:每個(gè)進(jìn)程都已相對獨(dú)立、不可預(yù)知的速度向前推迸。

e)構(gòu)造性:為了控制和管理進(jìn)程,系統(tǒng)為每個(gè)進(jìn)程設(shè)立一個(gè)進(jìn)程控制塊(PCB)。

6.進(jìn)程有幾種狀態(tài)?

a)就緒狀態(tài)

b)運(yùn)行狀態(tài):單CPU環(huán)境下,系統(tǒng)處于運(yùn)行狀態(tài)的進(jìn)程最多只有一個(gè)。

c)阻塞狀態(tài)

7.進(jìn)程的組成:

a)程序:

b)數(shù)據(jù)集合:進(jìn)程獨(dú)有

c)進(jìn)程控制塊(PCB):它和進(jìn)程一一對應(yīng),PCB是操作系統(tǒng)能感知進(jìn)程存在的唯一標(biāo)

識(shí),操作系統(tǒng)正是通過管理PCB來管理進(jìn)程的,系統(tǒng)創(chuàng)立進(jìn)程時(shí),為每個(gè)進(jìn)程分配

PCB,進(jìn)程執(zhí)行完成后,系統(tǒng)釋放PCB,進(jìn)程也隨之消亡。

8.進(jìn)程的切換:

a)進(jìn)程上下文包含用戶級上下文、系統(tǒng)級上下文、存放器上下文

b)進(jìn)程J_下文切換是核心態(tài)的切換,不發(fā)生在用廣態(tài)v

c)用戶態(tài)到核心態(tài)之間的轉(zhuǎn)變是CPU模式的改變。橫式切換不同于進(jìn)程切換,并不引

起進(jìn)程狀態(tài)的改變。

9.為什么會(huì)提出線程這個(gè)概念?進(jìn)程的缺點(diǎn)是什么?

a)進(jìn)程切換開銷大

b)迸程通信代價(jià)大

c)進(jìn)程之間并發(fā)性粒度粗,并發(fā)度不高

d)不適合并行計(jì)算和分布式并行計(jì)算的要求

e)不適合客戶-效勞器計(jì)算的要求

f)操作系統(tǒng)中引入進(jìn)程的目的是為了使多個(gè)程序并發(fā)執(zhí)行,改善資源的利用率以提高

系統(tǒng)的吞吐量。

10.線程的分類:

a)用戶級線程-ULT,優(yōu)點(diǎn)是線程切換不需要系統(tǒng)狀態(tài)的轉(zhuǎn)換,每個(gè)進(jìn)程可以使用專

門的調(diào)度算法來調(diào)度線程,不需要依賴操作系統(tǒng)底層的核。缺點(diǎn)是父進(jìn)程阻塞會(huì)導(dǎo)

致線程全都阻塞,不能真正的并行。Java的線程就是一種用戶級的線程。

b)核級線程-KLT,優(yōu)點(diǎn)是同一個(gè)進(jìn)程多個(gè)線程可以并行執(zhí)行,缺點(diǎn)是線程狀態(tài)轉(zhuǎn)換

時(shí)核態(tài)的任務(wù),通常很慢。

c)混合式線程-上兩種的結(jié)合,有良好的效果。

11.進(jìn)程控制塊的作用?它是如何描述進(jìn)程動(dòng)態(tài)性質(zhì)的?

a)PCB是系統(tǒng)感知進(jìn)程存在的唯一標(biāo)志,是進(jìn)程動(dòng)態(tài)特性的集中反映,和進(jìn)程一一對

應(yīng),操作系統(tǒng)通過管理PCB來管理進(jìn)程。

b)迸程控制塊包含進(jìn)程描述信息,控制信息,和資源管理信息三類。這些信息的變化

反映進(jìn)程的動(dòng)態(tài)性質(zhì)。

12.操作系統(tǒng)核都包括哪些容?

a)一是支撐功能,包括中斷欠理,時(shí)鐘管理和原語操作等,二是資源管理功能,包括

進(jìn)程管理,存儲(chǔ)器管理和設(shè)備管理等。

13.欠理機(jī)調(diào)度的三個(gè)分類?

a)高級調(diào)度-作業(yè)調(diào)度

b)中級調(diào)度-交換調(diào)度(存和硬盤之間的交換)

c)低級調(diào)度-進(jìn)程調(diào)度(操作系統(tǒng)的核心)

d)高級調(diào)度發(fā)生在創(chuàng)立新進(jìn)程時(shí),它決定一個(gè)進(jìn)程能否被創(chuàng)立,或者是創(chuàng)立后能否被

設(shè)置成就緒狀態(tài),以參與競爭欠理器資源;中級調(diào)度反映到進(jìn)程狀態(tài)上就是掛起和

解除掛起,它根據(jù)系統(tǒng)的當(dāng)前符合情況決定停留在主存中的進(jìn)程數(shù);低級調(diào)度則是

決定哪一個(gè)就緒進(jìn)程或線程占有CPU運(yùn)行。

14.批作業(yè)調(diào)度算法

a)先來先效勞

b)最短作業(yè)優(yōu)先

c)響應(yīng)比高者優(yōu)先

d)優(yōu)先級算法

15.進(jìn)程調(diào)度的方式:

a)非剝奪方式(非掄占式方式):優(yōu)點(diǎn)是簡單、易實(shí)現(xiàn),系統(tǒng)開銷小。缺點(diǎn)是不太靈活,

難以滿足緊迫任務(wù)必須立即執(zhí)行的要求。實(shí)時(shí)系統(tǒng)不宜采用這種調(diào)度方式。

b)可剝奪方式(搶占式方式):優(yōu)先權(quán)更高的進(jìn)程優(yōu)先執(zhí)行。

16.進(jìn)程調(diào)度的算法:

a)先來先效勞算法

b)最短優(yōu)先算法

c)優(yōu)先級算法:優(yōu)先級高的先執(zhí)行??梢圆捎脛儕Z或非剝奪,剝奪方式更能反映優(yōu)先

的特點(diǎn),但是會(huì)造成無窮阻塞和饑餓現(xiàn)象。

d)輪轉(zhuǎn)算法:根本思想是系統(tǒng)把所有就緒進(jìn)程按先來先效勞的原則排成一個(gè)隊(duì)列,且

規(guī)定一個(gè)較小的時(shí)間單元,稱為時(shí)間量或時(shí)間片,按時(shí)間片把CPU輪流分配給進(jìn)入

就緒隊(duì)列的第一個(gè)迸程使用,當(dāng)迸程的時(shí)間片使用完后,產(chǎn)生一個(gè)時(shí)鐘中斷,剝奪

該進(jìn)程的執(zhí)行,將它送到就緒隊(duì)列的隊(duì)尾,等待下次調(diào)度。輪轉(zhuǎn)算法專門為分時(shí)系

統(tǒng)設(shè)計(jì)。

e)多級隊(duì)列調(diào)度算法:根據(jù)不同的進(jìn)程,分配到不同的隊(duì)列中,實(shí)行不同的調(diào)度算法。

一般按照優(yōu)先級分成多個(gè)隊(duì)列,高優(yōu)先級的任務(wù)先做。

f)多級反應(yīng)隊(duì)列調(diào)度算法:按優(yōu)先級分配隊(duì)列,但是優(yōu)先級越高分配的時(shí)間片越小,

如果沒做完,自動(dòng)移動(dòng)到下一級隊(duì)列繼續(xù)做。

g)實(shí)時(shí)調(diào)度算法

17.操作系統(tǒng)多任務(wù)的搶占機(jī)制是怎么實(shí)現(xiàn)的?

18.哪種權(quán)限許可用戶進(jìn)入一個(gè)文件系統(tǒng)的目錄?Read,E*ecute?Write?AccessControl1

19.Linu*32位系統(tǒng),應(yīng)用程序最多能分配的存大???

20.sieep和wait的區(qū)別?

21.Win32下線程的根本模式?

22.進(jìn)程之間的關(guān)系?

a)競爭關(guān)系:由于進(jìn)程之間不知道彼此的存在,而使用了同一份資源,就會(huì)造成競爭。

資源競爭會(huì)出現(xiàn)饑餓和死鎖。

b)協(xié)作關(guān)系

23.什么是臨界資源?什么是臨界區(qū)?

a)臨界資源:把一次只允許一個(gè)進(jìn)程使用的資源成為臨界資源。(獨(dú)占性,如打印機(jī),

卡片揄出機(jī)等)

b)臨界區(qū):把每個(gè)進(jìn)程中訪問臨界資源的那段代碼從概念上別離出來,將其稱為臨界

區(qū)。即臨界區(qū)是指對臨界資源實(shí)時(shí)操作的程序的代碼段。

c)相關(guān)臨界區(qū):并發(fā)進(jìn)程中涉及一樣臨界資源的臨界區(qū)。相關(guān)臨界區(qū)必須互斥執(zhí)行。

24.什么是進(jìn)程互斥?

a)進(jìn)程互斥是解決進(jìn)程間競爭關(guān)系(間接制約關(guān)系)的手段,指任何時(shí)刻不允許兩個(gè)以

上的共享該資源的并發(fā)進(jìn)程同時(shí)進(jìn)入臨界區(qū),這種現(xiàn)象稱為互斥。

b)相關(guān)臨界區(qū)的管理原則:互斥、空閑讓進(jìn)、有限等待。

25.進(jìn)程同步的概念?進(jìn)程同步指兩個(gè)或多個(gè)進(jìn)程為了合作完成同一個(gè)任務(wù),在執(zhí)行速度或

*些確定的時(shí)序點(diǎn)上必須相互協(xié)調(diào),即一個(gè)進(jìn)程的執(zhí)行依賴于另一個(gè)進(jìn)程的消息,當(dāng)一

個(gè)進(jìn)程到達(dá)了*一個(gè)確定點(diǎn)而沒有得到合作伙伴發(fā)來的已完成消息時(shí)必須等待,知道該

消息到達(dá)被喚醒后,才能繼續(xù)向前推進(jìn)。

26.進(jìn)程同步和互斥的關(guān)系?

a)進(jìn)程的互斥實(shí)際上是進(jìn)程同步的一種特殊情況,即主次使用互斥共享資源,也是對

進(jìn)程使用資源次序上的一種協(xié)調(diào)。進(jìn)程的互斥和同步統(tǒng)稱為進(jìn)程同步。

b)進(jìn)程的互斥是進(jìn)程間共享資源的使用權(quán),這種競爭沒有固定的必然聯(lián)系,哪個(gè)進(jìn)程

競爭到資源的使用權(quán),該資源就歸哪個(gè)進(jìn)程使用,直到它不再需要使用時(shí)才歸還資

源;而進(jìn)程同步中,所涉及的共享資源的并發(fā)進(jìn)程間有一種必然的聯(lián)系,當(dāng)進(jìn)程必

須同步時(shí),即使無進(jìn)程在使用共享資源,尚未得到同步消息的進(jìn)程也不能去使用該

資源。

27.信號(hào)量機(jī)制(PV操作):

a)信號(hào)量機(jī)制的實(shí)現(xiàn)原理是兩個(gè)或多個(gè)進(jìn)程可以利用彼此間收發(fā)的簡單信號(hào)來實(shí)現(xiàn)

正確的并發(fā)執(zhí)行,一個(gè)進(jìn)程在收到一個(gè)指令信號(hào)前,會(huì)被迫在一個(gè)確定的或者需要

的地方停下來,從而保持同步或互斥。

b)用信號(hào)量機(jī)制解決進(jìn)程的同步和互斥問題有如下三個(gè)步驟:

i.分析進(jìn)程之間的制約關(guān)系

ii.設(shè)置信號(hào)量

iii.實(shí)施P、V操作

28.同步的實(shí)現(xiàn)機(jī)制:

a)臨界區(qū):通過多線程的串行化來訪問公共資源或者一段代碼,速度快,適合控制數(shù)

據(jù)訪問。

b)互斥量:采用互斥對象機(jī)制,只有擁有互斥對象的線程才有訪問公共資源的權(quán)限,

因?yàn)榛コ鈱ο笾挥幸粋€(gè),所以可以保證公共資源不會(huì)同時(shí)被多個(gè)線程訪問。

c)信號(hào)量:允許多個(gè)線程同時(shí)訪問同一資源,但是需要限制同一時(shí)刻訪問此資源的最

大線程數(shù)目。信號(hào)量對象對線程的同步方式與前面幾種方法不同,信號(hào)允許多個(gè)線

程同時(shí)使用共享資源,這與操作系統(tǒng)PV操作相似。

d)事件(信號(hào)):通過通知操作的方式保持多線程同步,還可以方便的實(shí)現(xiàn)多線程的優(yōu)

先級比擬的操作。

29.經(jīng)典的同步問題:

a)生產(chǎn)者消費(fèi)者問題

b)讀者-寫者問題〔讀者優(yōu)先:信號(hào)量+讀進(jìn)程計(jì)數(shù)器rc;弱寫者優(yōu)先:信號(hào)量+讀進(jìn)

程計(jì)數(shù)器rc+排隊(duì)信號(hào)量read;強(qiáng)寫者優(yōu)先:信號(hào)量4?讀進(jìn)程計(jì)數(shù)器rc+排隊(duì)信號(hào)

量read+寫優(yōu)先信號(hào)量\vrite_first)

c)哲學(xué)家就餐問題遙在多個(gè)線程之間共享多個(gè)資源時(shí)會(huì)不會(huì)導(dǎo)致死鎖或饑餓的典型

模型。解決方案:

i.每個(gè)哲學(xué)家取得手邊的兩個(gè)叉子才能吃面,即僅當(dāng)一個(gè)哲學(xué)家左右兩邊的叉子

都可用時(shí),才允許他拿叉子,否則一個(gè)叉子也不取。

ii.偶數(shù)號(hào)哲學(xué)家先取手邊的又子,奇數(shù)號(hào)哲學(xué)家先取右手邊的又子。

d)嗜睡理發(fā)師問題

30.進(jìn)程通信的方式:

a)共享存儲(chǔ):消息緩沖

b)消息傳遞:信箱

c)管道通信

31.產(chǎn)生死鎖的原因?

a)進(jìn)程競爭資源引起的死鎖

b)進(jìn)程推進(jìn)順序不當(dāng)產(chǎn)生死鎖

32.產(chǎn)生死鎖的條件

a)互斥條件:同時(shí)只能有一個(gè)進(jìn)程持有資源

b)請求和保持條件:一個(gè)進(jìn)程請求資源得不到滿足時(shí),不釋放占有的資源

c)不剝奪條件:任何一個(gè)進(jìn)程不能搶奪其他進(jìn)程占有的資源

d)循環(huán)等待條件:存在一個(gè)循環(huán)等待鏈,鏈中每個(gè)進(jìn)程巳獲得資源,并分別等待前一

個(gè)進(jìn)程持有的資源。

33.欠理死鎖的方法:

a)死鎖預(yù)防:破壞產(chǎn)生死鎖條件的任何一個(gè)或多個(gè),如靜態(tài)資源分配策略(2)和按序

分配咨源策略(4)。

b)死鎖防止:采用銀行家算法,每次分配都查看能否找到一種資源分配方法,使得已

有的進(jìn)程可以順利完成任務(wù),如果有,則分配,否則不分配。

c)死鎖檢測和解除:用軟件來檢查有進(jìn)程和資源構(gòu)成的有向圖是否存在一個(gè)或多個(gè)回

路。

34.分頁存儲(chǔ)管理、段式存儲(chǔ)管理和段頁式存儲(chǔ)管理的根本思想:

a)(分頁)利用分頁存儲(chǔ)管理,允許把一個(gè)作業(yè)存放到假設(shè)干個(gè)不相鄰的存區(qū)域中,

減少大碎片。

b)(分段)段式存儲(chǔ)管理支持用戶的分段觀點(diǎn),以段為單位進(jìn)展存儲(chǔ)空間的分配。分

段存儲(chǔ)管理的引入,主要為了方便編程福息共享和信息保護(hù)(有利于程序的運(yùn)行)。

c)(段頁式)段頁式存儲(chǔ)管理的根本原理是先將整個(gè)主存劃分成大小相等的存儲(chǔ)塊(頁

框),把用戶程序分段,接著為每一段進(jìn)展分頁。

35.分頁和分段的區(qū)別?

a)分頁是信息的物理單位,與源程序的邏輯構(gòu)造無關(guān),用戶不可見,分頁的目的主要

是為了減少碎片,提高主存的利用率。分段是信息的邏輯單位,由源程序的邏輯構(gòu)

造來決定,目的是更好地滿足用戶的需求。

b)頁的大小固定且由系統(tǒng)確定,而段的長度不固定,由用戶程序決定。

c)分頁的作業(yè)地址空間是一維的(線性地址空間),分段的作業(yè)地址空間是二維的(段

名和段地址)。

36.緩存的局部性原理:根據(jù)研究,在較短的時(shí)間,程序的執(zhí)行會(huì)局限于求一個(gè)局部,則可

以根據(jù)當(dāng)前程序運(yùn)行的位置,推測可能執(zhí)行的程序:預(yù)先加載,來到達(dá)緩存的目的。(虛

擬存的實(shí)現(xiàn))

37.RAID技術(shù):

a)RAID1:兩個(gè)磁盤互相備份,平安性最好,但磁盤利用率50%,最低。

b)RAID2:采用漢明碼做出錯(cuò)校驗(yàn),按位穿插存取,用于大數(shù)據(jù)的讀寫,但冗余信息

開銷大,已被淘汰。

c)RAID3:位交織奇偶校驗(yàn),使用一個(gè)磁盤做奇偶校驗(yàn),數(shù)據(jù)分段存儲(chǔ)在其余磁盤中,

一旦有損壞,可以利用奇偶校驗(yàn)來重建數(shù)據(jù),但校驗(yàn)盤損壞則沒救,磁盤利用率

n-1。

d)RAID4:塊交織奇偶校驗(yàn),按塊存取,可以單獨(dú)對*個(gè)盤進(jìn)展操作,一次操作只涉

及數(shù)據(jù)盤和校驗(yàn)盤,不適合陵機(jī)分散的小數(shù)據(jù)

e)RAID5:塊交織分布式奇偶校驗(yàn),同樣以數(shù)據(jù)校驗(yàn)位來保證數(shù)據(jù)的平安,不同于校

驗(yàn)盤,它將數(shù)據(jù)段的校驗(yàn)位交互存放于各個(gè)硬盤,則任何一個(gè)硬盤損壞,都可以根

據(jù)其他硬盤上的校驗(yàn)位來重建損壞的數(shù)據(jù),磁盤利用率n-L

38.SPOOLing系統(tǒng)?

a)在存和硬盤中間建立緩沖區(qū),在存寫入硬盤的過程中,先寫入緩沖,等到CPU空閑

時(shí),才從緩沖區(qū)寫入硬盤。

39.同步和異步有什么不同?各自的優(yōu)勢?

40.什么是線程?線程的根本狀態(tài)?

41.synchronized和Lock的異同?

42.廿么是序列化?付么是持久化?刊么是串行化?transient的用法?哪些字段需要標(biāo)

記transient?

43.synchronized關(guān)鍵字的用法?

44.什么是守護(hù)線程?舉一個(gè)守護(hù)線程的例子?

計(jì)算機(jī)網(wǎng)絡(luò)

1.OSI模型及其各層次的作用?TCP/IP模型各層次及協(xié)議?

2.數(shù)據(jù)鏈路層和MAC層;介質(zhì)訪問控制層)?

3.計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議、接口和效勞的概念?

4.數(shù)據(jù)鏈路層:流量控制、可靠傳輸和滑動(dòng)窗口機(jī)制。

5.數(shù)據(jù)鏈路層設(shè)備:網(wǎng)橋和局域網(wǎng)交換機(jī)

6.網(wǎng)絡(luò)層的功能:異構(gòu)網(wǎng)絡(luò)互聯(lián)、路由與轉(zhuǎn)發(fā)、擁塞控制

7.路由算法:距離-向量路由算法、鏈路狀態(tài)路由算法、層次路由

8.IPv4容:分組、NAT、子網(wǎng)劃分和子網(wǎng)掩碼

9.ARP協(xié)議、DHCP協(xié)議與ICMP協(xié)議

10.網(wǎng)絡(luò)層設(shè)備:路由器的組成和功能,路由表和路由特發(fā)

11.流量控制和擁塞控制的區(qū)別?

12.傳輸層的功能?傳輸層的尋址與端口?套接字?

13.TCP協(xié)議和UDP協(xié)議?Java實(shí)現(xiàn)?UDP首部?

14.TCP段、TCP連接收理、TCP可靠傳輸、TCP流量控制和擁塞控制

15.TCP的擁塞控制:慢開場、擁塞防止、快重傳、快恢復(fù)。

16.應(yīng)用層:P2P模型?應(yīng)用層協(xié)議:DNS、FTP、EMAIL、MIME、STMP、POPS、HTTP。。

17.CGI?域名解析過程?

MySQL數(shù)據(jù)庫

1.INSERT嵌套SELECT

2.MySQL數(shù)據(jù)類型,int類型長度超出了也不會(huì)對數(shù)據(jù)產(chǎn)生影響,和SQLMODE有關(guān),

3.一個(gè)表中最多只能有一個(gè)自增長列。

4.DDL、DML、DCL、DQL語句?

a)DDL〔數(shù)據(jù)定義語言〕:create'drop、alter

b)DML〔數(shù)據(jù)操縱語言〕:insert、delete、update'select

c)DCL〔數(shù)據(jù)控制語言):grant、revoke

5.MySQL的其他數(shù)據(jù)庫:

a)information_schema數(shù)據(jù)庫存儲(chǔ)了數(shù)據(jù)庫對象信息,比方用戶表信息、列信息、

權(quán)限信息、字符集信息、分區(qū)信息等。

b)cluster存儲(chǔ)了系統(tǒng)的集群信息

c)mysql存儲(chǔ)了系統(tǒng)的用戶權(quán)限信息

d)test是系統(tǒng)自動(dòng)創(chuàng)立的測試數(shù)據(jù)庫,任何用戶都可以使用。

6.連接查詢即為多表查詢,僅選出兩表中互相匹配的記錄,外連接則會(huì)選出其他不匹配的

記錄。子查詢經(jīng)常使用in'notin'='!=、exists'notexists等。表連接很多情況

下用于優(yōu)化子查詢。合并記錄用union(含distinct)或unional1。

7.MySQL數(shù)字類型及字節(jié)數(shù)、日期類型及字節(jié)數(shù)、字符串類型及字節(jié)數(shù)。

8.MySQL可以使用REGEXP或RLIKE來使用正則匹配。NULL不能用于"=,<,>,<>等",但可

以使用<=>比擬NULL,比擬時(shí)不區(qū)分大小寫,數(shù)字作為浮點(diǎn)數(shù)比擬。短路與和非NULL

結(jié)果都為NULL,只有1或NULL為1。

9.MySQL常用函數(shù):

a)字符串CONCAT'INSERT、LEFT、RIGHT、REPLACE、SUBSTRING、LPAD、RPAD、TRIM、

REPEAT等。

b)數(shù)值函數(shù)ABS、CEIL、FLOOR、MOD、RAND、ROUND、TRUNCATE等。就y任意為NULL

結(jié)果都為NULL。產(chǎn)生0700F或機(jī)數(shù)為selectceil(100*rand()),

ceiKlOO^randO)<>

c)日期和時(shí)間函數(shù)CURDATE、CURTIME、NOW'UNIQTIMESTAMP、FROM_UNI*TIME、

DATE_FORMAT、DATEDIFF、DATE_ADD等,格式為‘。

d)流程函數(shù)IF、IFNULL、CASEWHENTHENELSEEND、CASE(e*p)WHENTHENELSEEND。

e)其他函數(shù)DATABASE、VERSION、USER、INET_ATON、INET.NTOA'PASSWORD、MD5。

10.MySQL存儲(chǔ)類型:MyISAM'InnoDB、BDB'MEMORY、CSV等,只有InnoDB和BDB支持事

務(wù),其他都不支持v"ySQL默認(rèn)存儲(chǔ)引擎為InnoDB”

11.InnoDB和MylSAM的區(qū)別?事務(wù)、外鍵、訪問速度、占用空間、存儲(chǔ)方式(MylSAM:就

態(tài)表、動(dòng)態(tài)表和壓縮表。InnoDB:共享表空間、多表空間)等方面。

12.MEMORY表使用HASH索引嗷據(jù)量大小由ma*_heap_tab1e_size變量來決定,默認(rèn)16MB。

13.如何選擇適宜的存儲(chǔ)引擎?

a)以讀操作和插入操作為主,少量更新和刪除,對事務(wù)完整性、并發(fā)性要求不高則使

用MyISAM引擎。

b)InnoDB則適合于并發(fā)要求高的場合,事務(wù)完整性要求較高,除了可以有效降低刪

除和更新導(dǎo)致的鎖定,還可以確保事務(wù)的完整提交和回滾,適合財(cái)務(wù)管理系統(tǒng)。

c)MEMORY通常用于更新不太頻繁的小表,可以快速得到結(jié)果。

d)MERGE組合了MylSAM表,突破了單個(gè)MyISAM表的限制,并可以分布在多個(gè)磁盤上,

有效改善MERGE襲的訪問效率。

14.選擇適宜的數(shù)據(jù)類型?

a)CHAR和VARCHAR-MylSAM:建議固定長度的數(shù)據(jù)列CHAR4nnoDB:建議使用VARCHAR

類型。

b)TE*T和BLOB-盡量選擇滿足需求的最小的存儲(chǔ)類型、大量刪除后為提高性能應(yīng)定

期使用OPTIMIZETABLE功能進(jìn)展標(biāo)的碎片整理。同時(shí)可以使用合成的索引

(Synthetic)來提高大文本字段的查詢性能,此種索引主要利用散列值,只能用于

準(zhǔn)確匹配的查詢"="。不必要時(shí)盡量防止檢索BLOB和TE*T。單獨(dú)將BLOB和TE*T

分成一表。

c)定點(diǎn)DECIMAL和浮點(diǎn)FLOAT'DOUBLE-定點(diǎn)更準(zhǔn)確,字符串存儲(chǔ),而浮點(diǎn)數(shù)不準(zhǔn)確,

而且比擬容易出錯(cuò)。

d)日期類型選擇:盡量選擇滿足需求的最小存儲(chǔ)的日期類型,需要記錄年份長運(yùn),則

DATETIME。如果需要不同時(shí)區(qū)使用,貝”使用TIMESTAMP。

15.選擇適宜的字符集:

a)滿足應(yīng)用支持語言的需求、考慮和已有數(shù)據(jù)的兼容性、漢字居多可以考慮GBK2

字節(jié),而UTF83字節(jié),而英文則應(yīng)該UTF81字節(jié),其他2字節(jié)。

b)如果需要比擬,排序等字符運(yùn)算,則最好選擇定長字符集。盡量防止字符集轉(zhuǎn)換。

1G.字符集用來MySQL存儲(chǔ)字符串的方式,校對規(guī)則用來定義比擬字符串的方式“

a)查看方式:showcharacterset;showcollation1ike"%%";

b)校對規(guī)則_ci大小寫不敏感、—cs大小寫敏感、一bin基于編碼值的比擬。

17.MylSAM和InnoDB默認(rèn)都是BTREE索引,目前不支持函數(shù)索引,但支持前綴索引。此外,

還支持全文索引。默認(rèn)情況下MEMORY使用HASH索引,也支持BTREE索引。

18.索引操作:

a)創(chuàng)立索引-CREATE[uniquelfullte*tIspecial]INDE*inde*_name[USING

inde*_type]ONtbl_name(inde*_col_name,)

b)修改增加索引-ALTERTABLEtable_nameADD-uniqueIfullte*tIspecial]INDE*

inde*_name[USINGinde*_type]inde*_co1_nameinde*_co1_name=

col_name[(length)][ASCIDESC]

c)可以通過explainselect語句查看是否使用了索引。key:***為使用索引。

d)刪除索引-DROPINDE*inde*_nameONtbl_name

19.MylSAM索引前綴長度1000字節(jié),InnoDB前綴索引長度最長767字節(jié)。

20.設(shè)計(jì)索引的原則:

a)索引列應(yīng)選擇SELECTWHERE語句后的列和表連接ON子句后的列。

b)盡量使用唯一索引,分布越分散效果越好,如性別就不適合索引,分布太密集。

c)盡量使用短索引,杳詢更快,10更少。

d)利用最左前綴。

e)不要過度索引,會(huì)降低使用效率。

f)InnoDB會(huì)根據(jù)主鍵、唯一索引或部列的排序來存儲(chǔ),所以盡量自己指定主鍵,選

擇常用列作為主謔。另外,InnoDB表的普通索引都會(huì)保存主鍵的鍵值,所以主鍵

要盡可能選擇較短的數(shù)據(jù)類型,可以有效減少索引的磁盤占用提高索引緩存效果。

21.HASH索引只加使用在=或<=>等式比擬時(shí)。優(yōu)化器不能使用HASH索引來加速ORDERBY

操作。BTREE索引可以用在>,<,>=,<=,BETWEEN?!=*<>?LIKE"pattern"(pattern

不能以通配符開頭)。簡而言之,圖查詢適用于BTREE>不適用HASH索引。

22.MySQL使用索引,在檢索的時(shí)候不需要查找所有數(shù)據(jù),能快速定位需要的數(shù)據(jù)。大多數(shù)

索引存儲(chǔ)在BTREE中,只有空間列類型的索引使用RTREE,MEMORY表支持HASH索引。

23.為什么需要使用視圖?

a)使用視圖的用戶不需要考慮對應(yīng)表構(gòu)造,關(guān)聯(lián)條件和篩選條件v

b)使用視圖可以控制用戶訪問到行列級別。

c)視圖構(gòu)造確定了,可以屏蔽表構(gòu)造變化對用戶的影響。

24.視圖操作:

a)包I立才見圖一CREATE[ORREPLACE][ALGORITHM={UNDEFINED|MERGEITEMPTAELE}]

VIEWview_name[{column_list}]ASselect_statement[W1TH[CASCADEDILOCAL]

CHECKOPTION]

b)修改視圖-ALTER[ALGORITHM=(UNDEFINEDIMERGEITEMPTABLE)]VIEW

view_name[(column」ist)]ASse1ect_statement[WITH[CASCADED|LOCAL]

CHECKOPTION]

c)刪除視圖-DROPVIEW[IFEXISTS]view_name[,view_name][RESTRICT|

CASCADE]

d)查看視圖-SHOWTABLES

e)查看視圖信息-SHOWTABLESTATUS[FROM][LIKE*pattern]

f)查詢視圖定義-SHOWCREATEVIEW

25.MySQL不允許在創(chuàng)立視圖時(shí)使用子杳詢,可以使用查詢視圖語句來實(shí)現(xiàn)。一些視圖不可

更新:

a)包含聚合函數(shù)(SUM'MIN'MA*、COUNT等)、DISTINCT、GROUPBY、HAVING'INION

或者UNIONALL*

b)常量視圖

c)SELECT包含子查詢

d)JOIN

e)FROM了一個(gè)不能更新的視圖

f)WHERE子句的子查詢引用了FROM子句的表

26.WITHCASCADED!LOCALCHECKOPTION決定了是否允許更新數(shù)據(jù)使記錄不再滿足視圖的

條件LOCAL表示只要滿足本視圖的條件就可以更豺,CASCADED必須滿足所有針對該視

圖的所有視圖條件才可以更新。

27.廿么是存儲(chǔ)過程?它有田么好處?它和函數(shù)有出么區(qū)別?

28.存儲(chǔ)過程操作:

a)創(chuàng)立存儲(chǔ)過程-CREATEPROCEDUREsp_name([proc_parameter])

[characteristic]routine_body

b)創(chuàng)立函數(shù)-CREATEFUNCTIONsp_name([func_parameter])RETURNStype

[characteristic]routine_bodyproc_parameter=[INIOUTIINOUT]param_name

typefunc_parameter=proc_parametertype=MySQL任意數(shù)據(jù)類型

characteristic=LANGUAGE_SQLI[NOT]DETERMINISTICI{CONTAINS.SQLINOSQL

IREADSSQLDATAIMODIFIESSQLDATA)ISQLSECURITY(DEFINERIINVOKER}

IMENT'string'routine_body=合法SQL語句

c)修改函數(shù)或存儲(chǔ)過程-ALTER(PROCEDUREIFUNCTION)sp-name

[characteristic...]characteristic={CONTAINS_SQLINOSQLIREADSSQLDATA

IMODIFIESSQLDATA)ISQLSECURITY{DEFINER|INVOKER)|MENTJstring

d)調(diào)用存儲(chǔ)過程-CALLsp_name([parameter])

e)刪除存儲(chǔ)過程或函數(shù)-DROP(PROCEDUREIFUNCTION}[IFEXISTS]sp_name

29.首先調(diào)用DELEMITER$$將完畢符從;改成$$,使得過程和函數(shù)中的;不會(huì)被解釋成語句

完畢而提示錯(cuò)誤。然后從DELEMITER;將完畢符改回來。

30.存儲(chǔ)過程變號(hào)的使用:

a)DECLEARlast_month_startDATE;

b)變量賦值:SETvar_name=e*pr;SELECTcol_nameINTOvar_nameFROM

tbl_name

31.存儲(chǔ)過程可以使用流程控制語句:

a)IFTHENELSEIFTHENELSEENDIF...

b)也可以使用CASEWHENTHENWHENTHENELSEENDCASE。

c)循環(huán)使用:

i.LOOP語句?begin_label:LOOPstatement_listENDLOOPend_label°

ii.LEAVE語句:可以使用LEAVE跳出循環(huán)(LEAVEbegin_labeD或BEGINEND。

iii.ITERATE語句:同CONTINUE(ITERATEbegin_label)

iv.REPEAT語句?begin_label:REPEATstatenent_listUNTILsearch_condition

ENDREPEATbegin_label.

v.WHILE語句:begin_label:WHILEsearch_conditionDOstatement_lisiEND

WHILEend_label;

32.事件調(diào)度器:類似于時(shí)間觸發(fā)器,定時(shí)執(zhí)行任務(wù)。

a)倉“立i吾法:CREATEEVENTmyeventONSCHEDULEATCURRENT_TIMESTAMP+INTERVAL

1HOURDOUPDATEmyschema,mytableSETmycol=mycol+1;

b)事件調(diào)度器默認(rèn)關(guān)閉。

c)禁用或刪除事件調(diào)度器:ALTERTABLEevent_nameDISABLE;DROPEVENT

event_nanie;

33.事件調(diào)度器的優(yōu)勢:

a)防止數(shù)據(jù)庫相關(guān)的定時(shí)任務(wù)部署在操作系統(tǒng)層,減少操作系統(tǒng)管理員產(chǎn)生誤操作的

風(fēng)險(xiǎn),并方便遷移,遷移過程包括該數(shù)據(jù)庫。

b)適用于定期收集統(tǒng)計(jì)信息、定期清理歷史數(shù)據(jù)、定期數(shù)據(jù)檢查。

c)復(fù)雜的父理適合程序?qū)崿F(xiàn)。

34.觸發(fā)器是與表有關(guān)的數(shù)據(jù)庫對象,會(huì)在滿足一定條件定義時(shí)觸發(fā),并執(zhí)行觸發(fā)器定義的

語句集合。

a)創(chuàng)立觸發(fā)器-CREATETRIGGERtrigger_nametrigger_timetrigger_eventON

tbl_nameFOREACHROWtrigger-stmt

b)同一表一樣時(shí)間一樣事件的觸發(fā)器,只可以定義一個(gè)。

c)觸發(fā)器時(shí)間可分為BEFORE和AFTER,事件可分為INSERTUPDATEDELETE等。

d)可以使用INSERTINTOONDEPLICATEKEYUPDATE***來測試觸發(fā)器執(zhí)行順

序,如果已存在,則先insert在updateafterupdate。如果不存在,則insert

afterinsert。

e)刪除觸發(fā)器-DROPtriggerins_fiIm;

f)查看觸發(fā)器-showtriggers;information_schema.triggers

35.什么時(shí)候使用觸發(fā)器?

a)不可以直接調(diào)用直接返回客戶端數(shù)據(jù)的存儲(chǔ)過程。

b)也不能使用開場或完畢事務(wù)的語句(starttransactionmitrollback語句)。

c)不要將過多的邏輯寫在觸發(fā)器中,影響CURD效率。

36.MySQL支持MyISAM和MEMORY鎖表,對BDB進(jìn)展鎖頁?對InnoDB鎖行"默認(rèn)自動(dòng)鎖表

和鎖行,但有些時(shí)候用戶會(huì)明確鎖表或者進(jìn)展事務(wù)的控制,以確保事務(wù)的完整性,這樣

就需要使用事務(wù)控制和鎖定語句來完成。

37.LOCKTABLES可以鎖定用于當(dāng)前線程的表,UNLOCKTABLES會(huì)釋放當(dāng)前線程獲得的任何

鎖定。

a)鎖定語句-LOCKTABLEStbl_name[ASalias](READ[LOCAL]I[LOW.PROORITY]

WRITE)...

b)釋放語句-UNLOCKTABLES

38.MySQL的事務(wù)控制:

a)SETAITOMIT-設(shè)置是否自動(dòng)提交,0表示不自動(dòng)提交

b)STARTTRANSACTION/BEGIN-開場一項(xiàng)新事務(wù)

c)MIT-提交事務(wù)

d)ROLLBACK-回滾事務(wù)

39.如果鎖表期間如果執(zhí)行starttransaction命令,會(huì)有隱含unlocktable執(zhí)行。lock

方式鎖表,不能使用rollback進(jìn)展回滾。

40.所有的DDL語句不能回浪,并且局部DDL語句會(huì)造成隱式提交??梢远xsavepointname

來實(shí)現(xiàn)不同階段的回波?rollbacktosavepointname0

41.MySQL的分布式事務(wù):

a)只支持InnoDB引擎。

b)分布式事務(wù)還有問題:

i.如果分布式事務(wù)prepare時(shí)數(shù)據(jù)庫重新啟動(dòng),重啟以后還可以進(jìn)展提交或回

滾,但此時(shí)不會(huì)寫binlog,會(huì)造成主從數(shù)據(jù)庫不一致。

ii.如果客戶端連接弄常終止,則數(shù)據(jù)庫會(huì)回流還未完成的分支事務(wù),如果此時(shí)分

支事務(wù)已經(jīng)執(zhí)行了prepare狀態(tài),其他分支可能已經(jīng)成功提交,則事務(wù)會(huì)不完

整。

iii.欠于prepare狀態(tài)的事務(wù)不記錄binlog?如果數(shù)據(jù)庫效勞宕機(jī)?則會(huì)喪失數(shù)

據(jù)。

42.防止SQL注入的幾種措施:

a)使用PrepareStatement綁定變量?將輸入的單引號(hào)轉(zhuǎn)又輸入?防止了SQL注入*

b)使用應(yīng)用程序提供的轉(zhuǎn)換函數(shù)。

c)自定義函數(shù)進(jìn)展校驗(yàn)。(正則)

43.MySQLSQLMode:REAL_AS_FLOAT'PPES_AS_CONCAT'ANSI_QUOTES、GNORE_SPACE'ANSI。

STRICT_TRANS_TABLES嚴(yán)格模式。

44.嚴(yán)格模式不允許插入超過定義長度的數(shù)據(jù)。

45.SQLMode常見功能:

a)校驗(yàn)日期數(shù)據(jù)的合法性-(ANSI模式對非法日期會(huì)警告,而TRADITIONAL模式則直

接提示日期非法,拒絕插入)

b)MOD(*,0)時(shí),TRADITIONAL模式會(huì)拋出警告。

c)NO_BACKSLASH_ESCAPES會(huì)將'\"變成普通字符。

d)提供PIPES_AS_CONCAT,使得"11”可以連接字符串。

46.常用SQLMode:

a)ANSI-更符合標(biāo)準(zhǔn)SQL

b)STRICT_TRANS_TABLES-嚴(yán)格模式,可以用在事務(wù)表和非事務(wù)表,不允許非法日期,

不允許超出長度,不正確的值會(huì)報(bào)錯(cuò)

c)TRADITIONAL-嚴(yán)格模式,可以應(yīng)用在事務(wù)表和事務(wù)表,出現(xiàn)錯(cuò)誤立刻回滾,

47.MySQL分區(qū):根據(jù)一定的規(guī)則,數(shù)據(jù)庫把一個(gè)表分解成多個(gè)更小的更容易管理的局部。

邏輯上一個(gè)表或者一個(gè)索引,實(shí)際上會(huì)有多個(gè)分區(qū),每個(gè)分區(qū)都是獨(dú)立的對象,可以獨(dú)

立必理,也可以作為表的一局部級理。

48.MySQL分區(qū)的優(yōu)點(diǎn):

a)和單個(gè)磁盤或者文件系統(tǒng)分區(qū)相比,可以存儲(chǔ)更多的數(shù)據(jù)。優(yōu)化查詢,where查詢

可能只需要查詢幾個(gè)分區(qū),聚合函數(shù)時(shí)容易并行欠理。

b)對于不需要的數(shù)據(jù)可以刪除有關(guān)分區(qū)來到達(dá)快速刪除的目的。

c)分散數(shù)據(jù)查詢,以獲得更大的查詢吞吐量。

49.創(chuàng)立分區(qū)表:CRE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論