更新時(shí)間:2022-12-23 14:34:31 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1322次
為什么我們?cè)诿嬖嚦绦騿T的時(shí)候,一定會(huì)被問到數(shù)據(jù)庫相關(guān)的面試題呢?因?yàn)閿?shù)據(jù)索引是可以提高效率的,我們要知道數(shù)據(jù)索引是有序的,并且可以通過索引查詢一個(gè)數(shù)據(jù)是無需遍歷索引記錄,非常的方便,并且在極端的情況下,數(shù)據(jù)索引的查詢效率為二分法查詢效率,趨近于log2(N)。所以,想要在面試官面前表現(xiàn)的突出一些,那么數(shù)據(jù)庫相關(guān)的面試題是必須要掌握的:
1、哈希索引的優(yōu)勢(shì):
等值查詢,哈希索引具有絕對(duì)優(yōu)勢(shì)(前提是:沒有大量重復(fù)鍵值,如果大量重復(fù)鍵值時(shí),哈希索引的效率很低,因?yàn)榇嬖谒^的哈希碰撞問題。
2、哈希索引不適用的場(chǎng)景:
3、什么是表分區(qū)?
表分區(qū),是指根據(jù)一定規(guī)則,將數(shù)據(jù)庫中的一張表分解成多個(gè)更小的,容易管理的部分。從邏輯上看,只有一張表,但是底層卻是由多個(gè)物理分區(qū)組成
4、表分區(qū)與分表的區(qū)別?
分表:指的是通過一定規(guī)則, 將一張表分解成多 張不同的表。比如將用戶訂單記錄根據(jù)時(shí)間成多個(gè)表。
分表與分區(qū)的區(qū)別在于:分區(qū)從邏輯上來講只有一張表 ,而分表則是將一張表分解成多張表。
5、表分區(qū)有什么好處?
存儲(chǔ)更多數(shù)據(jù)。分區(qū)表的數(shù)據(jù)可以分布在不同的物理設(shè)備上,從而高效地利用多個(gè)硬件設(shè)備。和單個(gè)磁盤或者文件系統(tǒng)相比,可以存儲(chǔ)更多數(shù)據(jù)
優(yōu)化E詢。在where語句中包含分區(qū)條件時(shí),可以只掃描一個(gè)或多 個(gè)分區(qū)表來提高查詢效率;涉及sum和count語句時(shí),也可以在多個(gè)分區(qū)上并行處理,最后匯總結(jié)果。
分區(qū)表更容易維護(hù)。例如:想批量刪除大量數(shù)據(jù)可以清除整個(gè)分區(qū)。
避免某些特殊的瓶頸,例如InnoDB的單個(gè)索引的互斥訪問, ext3問價(jià)你系統(tǒng)的inode鎖競(jìng)爭(zhēng)等。
6、在MVCC并發(fā)控制中,讀操作可以分成兩類:
快照讀(snapshot read):讀取的是記錄的可見版本(有可能是歷史版本),不用加鎖(共享讀鎖s鎖也不加,所以不會(huì)阻塞其他事務(wù)的寫)
當(dāng)前讀(currentread):讀取的是記錄的最新版本,并且,當(dāng)前讀返回的記錄,都會(huì)加上鎖,保證其他事務(wù)不會(huì)再并發(fā)修改這條記錄
7、行級(jí)鎖定的優(yōu)點(diǎn):
8、行級(jí)鎖定的缺點(diǎn):
比頁級(jí)或表級(jí)鎖定占用更多的內(nèi)存。當(dāng)在表的大部分中使用時(shí),比頁級(jí)或表級(jí)鎖定速度慢,因?yàn)槟惚仨毇@取更多的鎖。 如果你在大部分?jǐn)?shù)據(jù)上經(jīng)常進(jìn)行GROUP BY操作或者必須經(jīng)常掃描整個(gè)表,比其它鎖定明顯慢很多。 用高級(jí)別鎖定,通過支持不同的類型鎖定,你也可以很容易地調(diào)節(jié)應(yīng)用程序,因?yàn)槠滏i成本小于行級(jí)鎖定。
9、MySQL優(yōu)化
prepared statements獲得很多好處,無論是性能問題還是安全問題。
Prepared Statements可以檢查一些你綁定好的變量,這樣可以保護(hù)你的程序不會(huì)受到“SQL注入式” 攻擊
以上就是“2023新版數(shù)據(jù)庫基礎(chǔ)面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743