大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 精心整理的數據庫常見面試題

精心整理的數據庫常見面試題

更新時間:2022-12-26 15:39:30 來源:動力節點 瀏覽955次

很多進入到互聯網公司的同學,在真正面臨工作的情況下,發現對于數據庫方面已經忘得一塌糊涂,還要抽出時間整理一番。今天小編就針對數據庫方面的問題,為大家添加到常見的面試清單中:

數據庫常見面試題

事務的并發問題

1、臟讀:事務A讀取了事務B更新的數據,然后B回滾操作,那么A讀取到的數據是臟數據

2、不可重復讀:事務 A 多次讀取同一數據,事務 B 在事務A多次讀取的過程中,對數據作了更新并提交,導致事務A多次讀取同一數據時,結果因此本事務先后兩次讀到的數據結果會不一致。

3、幻讀:幻讀解決了不重復讀,保證了同一個事務里,查詢的結果都是事務開始時的狀態(一致性)。

例如:事務T1對一個表中所有的行的某個數據項做了從“1”修改為“2”的操作 這時事務T2又對這個表中插入了一行數據項,而這個數據項的數值還是為“1”并且提交給數據庫。 而操作事務T1的用戶如果再查看剛剛修改的數據,會發現還有跟沒有修改一樣,其實這行是從事務T2中添加的,就好像產生幻覺一樣,這就是發生了幻讀。

小結:不可重復讀的和幻讀很容易混淆,不可重復讀側重于修改,幻讀側重于新增或刪除。解決不可重復讀的問題只需鎖住滿足條件的行,解決幻讀需要鎖表。

MySQL存儲引擎MyISAM與InnoDB如何選擇

MySQL有多種存儲引擎,每種存儲引擎有各自的優缺點,可以擇優選擇使用: MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。

雖然MySQL里的存儲引擎不只是MyISAM與InnoDB這兩個,但常用的就是兩個。

兩種存儲引擎的大致區別表現在:

  • InnoDB支持事務,MyISAM不支持,這一點是非常之重要。事務是一種高級的處理方式,如在一些列增刪改中只要哪個出錯還可以回滾還原,而MyISAM就不可以了。
  • MyISAM適合查詢以及插入為主的應用。
  • InnoDB適合頻繁修改以及涉及到安全性較高的應用。
  • InnoDB支持外鍵,MyISAM不支持。
  • 從MySQL5.5.5以后,InnoDB是默認引擎。
  • InnoDB不支持FULLTEXT類型的索引。
  • InnoDB中不保存表的行數,如 selectcount(*)fromtable時,InnoDB需要掃描一遍整個表來計算有多少行,但是MyISAM只要簡單的讀出保存好的行數即可。注意的是,當count(*)語句包含where條件時MyISAM也需要掃描整個表。
  • 對于自增長的字段,InnoDB中必須包含只有該字段的索引,但是在MyISAM表中可以和其他字段一起建立聯合索引。
  • DELETE FROM table時,InnoDB不會重新建立表,而是一行一行的 刪除,效率非常慢。MyISAM則會重建表。
  • InnoDB支持行鎖(某些情況下還是鎖整表,如 update tableseta=1whereuser like'%lee%'。

關于MySQL數據庫提供的兩種存儲引擎,MyISAM與InnoDB選擇使用:

  • INNODB會支持一些關系數據庫的高級功能,如事務功能和行級鎖,MyISAM不支持。
  • MyISAM的性能更優,占用的存儲空間少,所以,選擇何種存儲引擎,視具體應用而定。
  • 如果你的應用程序一定要使用事務,毫無疑問你要選擇INNODB引擎。但要注意,INNODB的行級鎖是有條件的。在where條件沒有使用主鍵時,照樣會鎖全表。比如DELETE FROM mytable這樣的刪除語句。
  • 如果你的應用程序對查詢性能要求較高,就要使用MyISAM了。MyISAM索引和數據是分開的,而且其索引是壓縮的,可以更好地利用內存。所以它的查詢性能明顯優于INNODB。壓縮后的索引也能節約一些磁盤空間。MyISAM擁有全文索引的功能,這可以極大地優化LIKE查詢的效率。

有人說MyISAM只能用于小型應用,其實這只是一種偏見。如果數據量比較大,這是需要通過升級架構來解決,比如分表分庫,而不是單純地依賴存儲引擎。

現在一般都是選用innodb了,主要是MyISAM的全表鎖,讀寫串行問題,并發效率鎖表,效率低,MyISAM對于讀寫密集型應用一般是不會去選用的。

Hash索引

  1. Hash索引僅僅能滿足"=","IN"和"<=>"查詢,不能使用范圍查詢,因為經過相應的Hash算法處理之后的Hash值的大小關系,并不能保證和Hash運算前完全一樣;
  2. Hash索引無法被用來避免數據的排序操作,因為Hash值的大小關系并不一定和Hash運算前的鍵值完全一樣;
  3. Hash索引不能利用部分索引鍵查詢,對于組合索引,Hash索引在計算Hash值的時候是組合索引鍵合并后再一起計算Hash值,而不是單獨計算Hash值,所以通過組合索引的前面一個或幾個索引鍵進行查詢的時候,Hash索引也無法被利用;
  4. Hash索引在任何時候都不能避免表掃描,由于不同索引鍵存在相同Hash值,所以即使取滿足某個Hash鍵值的數據的記錄條數,也無法從Hash索引中直接完成查詢,還是要回表查詢數據;
  5. Hash索引遇到大量Hash值相等的情況后性能并不一定就會比B+樹索引高。

以上就是“精心整理的數據庫常見面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關內容,可以關注動力節點Java官網。 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 一级片在线观看视频 | 国产全黄a一级毛片 | 国产亚洲精品一区999 | 99精品久久精品一区二区 | 成年女人视频免费观看一 | 四虎影视永久地址www成人污 | 中国一级毛片欧美一级毛片 | 九九这里只精品视在线99 | 久草精品视频在线观看 | 伦理片爱久久 | 色丁香在线观看 | 精品欧美在线精品 | xx性欧美高清 | 国产日韩欧美91 | 淫欲网| 久久精品视屏 | 亚洲欧美日韩国产一区二区精品 | 日韩久操 | 国产综合成人久久大片91 | 成人短视频在线观看免费 | 久久精品国产久精国产果冻传媒 | 色老头在线观看精品 | 亚洲欧美日韩中文无线码 | 亚洲在线成人 | 精品国产一区二区三区在线观看 | 亚洲最大色网站 | 日韩国产成人资源精品视频 | 97影院午夜午夜伦不卡 | 国产日产欧美精品一区二区三区 | 亚洲精品欧美精品中文字幕 | 日本一区高清视频 | 午夜小视频网站 | 特黄特级高清免费视频毛片 | 日本高清不卡在线 | 99在线视频网站 | 国产福利视频奶水在线 | 国产高清国产精品国产k | 性生活免费视频网站 | 日韩欧美中文字幕一区 | 天天色天天干天天射 | 奇米影视奇米四色888av |