Mysql面試寶典

2021-09-11 18:27:54 字數 1834 閱讀 4266

索引

幾個基本的索引型別 1普通索引 2唯一索引 3主鍵索引 4復合索引 5全文索引 6空間索引

索引優點:

快速訪問資料表中的特定資訊,提高檢索速度

建立唯一性索引,保證資料庫表中每一行資料的唯一性

加速表和表之間的連線

使用分組和排序子句進行資料檢索時,可以顯著減少查詢中分組和排序的時間

索引缺點:

插入、刪除、修改速度下降

占用物理和資料空間

建立索引的原則:

最頻繁使用的、用以縮小查詢範圍的字段上建立索引

在頻繁使用的、需要排序的字段上建立索引

什麼情況不宜建立索引:

查詢中很少涉及的列或者重複值比較多的列

一些特殊的資料型別,比如文字字段(text)等

儲存過程

資料庫事務機制的四個特性及含義

原子性(atomic):整個事務中的所有操作,要麼全部完成,要麼全部不完成,不可能停滯在中間某個環節。事務在執行過程中發生錯誤,會被回滾(rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。

一致性(consistency):在事務開始之前和事務結束以後,資料庫的完整性約束沒有被破壞。

隔離性(isolation):隔離狀態執行事務,使它們好像是系統在給定時間內執行的唯一操作。如果有兩個事務,執行在相同的時間內,執行 相同的功能,事務的隔離性將確保每一事務在系統中認為只有該事務在使用系統。這種屬性有時稱為序列化,為了防止事務操作間的混淆,必須序列化或序列化請求,使得在同一時間僅有乙個請求用於同一資料。

永續性(durability):在事務完成以後,該事務所對資料庫所作的更改便持久的儲存在資料庫之中,並不會被回滾。

drop,delete與truncate的區別

資料庫正規化

第一正規化:在任何乙個關聯式資料庫中,第一正規化(1nf)是對關係模式的基本要求,不滿足第一正規化(1nf)的資料庫就不是關聯式資料庫。

所謂第一正規化(1nf)是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現重複的屬性,就可能需要定義乙個新的實體,新的實體由重複的屬性構成,新實體與原實體之間為一對多關係。在第一正規化(1nf)中表的每一行只包含乙個例項的資訊。簡而言之,第一正規化就是無重複的列。

第二正規化:第二正規化(2nf)是在第一正規化(1nf)的基礎上建立起來的,即滿足第二正規化(2nf)必須先滿足第一正規化(1nf)。第二正規化(2nf)要求資料庫表中的每個例項或行必須可以被惟一地區分。為實現區分通常需要為表加上乙個列,以儲存各個例項的惟一標識。這個惟一屬性列被稱為主關鍵字或主鍵、主碼。

第二正規化(2nf)要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成乙個新的實體,新實體與原實體之間是一對多的關係。為實現區分通常需要為表加上乙個列,以儲存各個例項的惟一標識。簡而言之,第二正規化就是非主屬性非部分依賴於主關鍵字。

第三正規化:滿足第三正規化(3nf)必須先滿足第二正規化(2nf)。簡而言之,第三正規化(3nf)要求乙個資料庫表中不包含已在其它表中已包含的非主關鍵字資訊。例如,存在乙個部門資訊表,其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等資訊。那麼在員工資訊表中列出部門編號後就不能再將部門名稱、部門簡介等與部門有關的資訊再加入員工資訊表中。如果不存在部門資訊表,則根據第三正規化(3nf)也應該構建它,否則就會有大量的資料冗餘。簡而言之,第三正規化就是屬性不依賴於其它非主屬性。(我的理解是消除冗餘)

資料庫中的樂觀鎖和悲觀鎖

樂觀鎖和悲觀鎖主要是作用在併發訪問控制

悲觀鎖 假定會發生併發衝突,遮蔽任何違反資料完整的操作

樂觀鎖 假定不會發生衝突,只有在提交操作時檢查是否違反資料的完整性

面試寶典12

1 請你自我介紹一下自己好嗎?3 說說你最大的缺點?4 你對薪資的要求?5 你對加班的看法?回答樣本 如果工作需要我會義不容辭加班,我現在單身,沒有任何家庭負擔,可以全身心的投入工作。但同時我也會提高工作效率,減少不必要的加班。6 如果通過這次面試我們錄用了你,但工作一段時間卻發現你根本不適合這個職...

cpp面試寶典

小白在面試寶典上的遊蕩 下面開始今日說法 比較兩端 include using namespace std int main cout 0 2 1 分析 初始化a 0,x 0,滿足a 1,且x的非為1,所以符合迴圈條件,x自加為1,a自加為1,進入迴圈體a加為2,已經不符合小於等於1的條件,所以後面...

java面試寶典

分布式session的五種實現方式 redis memcache儲存session 伺服器端共享session 基於資料庫的session 基於cookie的session共享 基於nfs共享檔案系統 怎麼防止客戶端填寫的資料在提交過程中被篡改?加密 使用post提交 https runnable和...