資料庫簡單面試題

2021-10-24 07:49:18 字數 1323 閱讀 3865

1、什麼是事務?什麼是鎖?

答:事務就是被繫結在一起作為乙個邏輯工作單元的sql 語句分

組,如果任何乙個語句操作失敗那麼整個操作就被失敗,以後操作

就會回滾到操作前狀態,或者是上有個節點。為了確保要麼執行,

要麼不執行,就可以使用事務。要將有組語句作為事務考慮,就需

要通過acid 測試,即原子性,一致性,隔離性和永續性。

鎖:在所以的 dbms中,鎖是實現事務的關鍵,鎖可以保證事務的

完整性和併發性。與現實生活中鎖一樣,它可以使某些資料的擁有

者,在某段時間內不能使用某些資料或資料結構。當然鎖還分級別

的。事務的四大特性:原子性(要麼全部執行,要麼都不執行)、隔離性(所有操作全部執行完以前其它會話不能看到過程)、一致性(事務前後,資料總額一致)、永續性(一旦事務提交,對資料的改變就是永久的)

2、索引的作用?和它的優點缺點是什麼?

答:索引就是一種特殊的查詢表,資料庫的搜尋引擎可以利用它加速對資料的檢索。它很類似與現實生活中書的目錄,不需要查詢整本書內容就可以找到想要的資料。索引可以是唯一的,建立索引允許指定單個列或者是多個列。索引最大的好處是可以提交查詢速率,缺點是它減慢了資料錄入的速度,同時也增加了資料庫的尺寸大小。

資料庫隔離級別

1)髒讀:事務b讀取事務a還沒有提交的資料

2)不可重複讀:兩次事務讀的資料不一樣

3)幻讀:事務a修改了資料,事務b也修改了資料,這時在事務a看來,明明修改了資料,咋不一樣

3、mysql資料庫為我們提供的四種隔離級別

① serializable (序列化):可避免髒讀、不可重複讀、幻讀的發生。

② repeatable read (可重複讀):可避免髒讀、不可重複讀的發生。

③ read committed (讀已提交):可避免髒讀的發生。

④ read uncommitted (讀未提交):最低級別,任何情況都無法保證。

在mysql資料庫中,支援上面四種隔離級別,預設的為repeatable read (可重複讀);而在oracle資料庫中,只支援serializable (序列化)級別和read committed (讀已提交)這兩種級別,其中預設的為read committed級別。

4、mysql的兩種儲存引擎區別(事務、鎖級別等等),各自的適用場景

myisam:不支援事務、外來鍵、mvcc,支援表鎖,插入資料時,鎖定整個表,查表總行數時,不需要全表掃瞄

innodb:支援事務、外來鍵、mvcc、行鎖,查詢總行數時,全表掃瞄

5、索引有b+索引和hash索引,各自的區別

hash索引:等值查詢效率高,不能排序,不能進行範圍查詢

b+索引:資料有序,可以進行範圍查詢

簡單面試題

1.short s1 1 s1 s1 1 有錯嗎?short s1 1 s1 1 有錯嗎?答 對於short s1 1 s1 s1 1 由於1是int型別,因此s1 1運算結果也是int 型,需要強制轉換型別才能賦值給short型。而short s1 1 s1 1 可以正確編譯,因為s1 1 相當於...

java簡單面試題

1 和 的區別是什麼?是預編譯處理,是字串替換。mybatis在處理 時,會將sql中的 替換為?號,呼叫preparedstatement的set方法來賦值 mybatis在處理 時,就是把 替換成變數的值。使用 可以有效的防止sql注入,提高系統安全性。2 當實體類中的屬性名和表中的欄位名不一樣...

python簡單面試題(2)

首先搭建環境,然後根據專案搭建自動化框架,編寫自動化用例,整理用例,自動生成測試報告,然後整合到jenkins上進行操作 出現anr和crash進行復現抓取日誌 adb命令 編寫自動化用例的時候斷言編寫清楚,然後也可以通過用例失敗後進行截圖進行儲存,方便我們後續檢視用例失敗原因,自動化用例失敗後,進...