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

面試題首頁 > 數據庫面試題

數據庫事務面試題

001事務的概念?

事務是邏輯上的一組操作,要么都執行,要么都不執行。事務最經典的例子就是轉賬了。假如小明要給小紅轉賬1000元,這個轉賬會涉及到兩個關鍵操作就是:將小明的余額減少1000元,將小紅的余額增加1000元。萬一在這兩個操作之間突然出現錯誤比如銀行系統崩潰,導致小明余額減少而小紅的余額沒有增加,這樣就不對了。事務就是保證這兩個關鍵操作要么都成功,要么都要失敗。

002事務的特征?

數據庫事務transanction正確執行的四個基本要素。ACID,原子性(Atomicity)、一致性(Correspondence)、隔離性(Isolation)、持久性(Durability)。
● 原子性:事務是最小的執行單位,不允許分割。整個事務中的所有操作,要么全部完成,要么全部不完成,不可能停滯在中間某個環節。
● 一致性:在事務開始之前和事務結束以后,數據庫的完整性沒有被破壞。
● 隔離性:并發訪問數據庫時,一個用戶的事務不被其他事務所干擾,各并發事務之間數據庫是獨立的;
● 持久性:在事務完成以后,該事務對數據庫中數據的改變是持久的。即使數據庫發生故障也不應該對其有任何影響。

003事務的隔離級別?

數據庫的隔離級別越高,并發性就越差,性能就越低。
oracle的隔離級別默認是READ COMMITED
mysql的隔離級別默認是REPEATABLE READ,mysql下的事務默認是自動提交的。

讀未提交:事務A在事務B未提交前讀取數據,如果事務B撤銷了修改,那么A會讀取到臟數據。因為事務B提交前的數據在緩存中
讀已提交:事務A分別在事務B提交前和提交后讀取數據,出現不可重復讀。因為事務B提交前的數據在緩存,事務B提交后的數據在硬盤,而事務A一直讀取的都是硬盤的數據從而導致不能夠重復讀的問題。
可重復讀:事務A在事務B添加一條數據提交后,事務A讀取記錄數的時候不一致出現幻讀。不可重復讀的重點在于Update和Delete,而幻讀在于Insert。

004并發事務帶來的問題?

在典型的應用程序中,如果多個事務并發運行可能會導致以下的問題。

在不同的隔離級別下,V值分別如下:

  讀未提交  讀已提交  可重復讀  串行化
V1 2 1 1 1
V2 2 2 1 1
V3 2 2 2 2

與標準的SQL隔離級別不同的是,InnoDB在可重復讀級別下,利用Next-Key Lock解決了幻讀問題,能夠完全保證事務的隔離性,達到了串行化級別。

005索引的優缺點,什么時候使用索引,什么時候不能使用索引

索引最大的好處是提高查詢速度, 
缺點是更新數據時效率低,因為要同時更新索引 
對數據進行頻繁查詢進建立索引,如果要頻繁更改數據不建議使用索引。

006簡述什么是聚簇索引與非聚簇索引?

聚簇索引:將數據存儲與索引放到了一塊,找到索引也就找到了數據。
非聚簇索引:將數據存儲于索引分開結構,索引結構的葉子節點指向了數據的對應行,MyISAM通過key_buffer把索引先緩存到內存中,當需要訪問數據時(通過索引訪問數據),在內存中直接搜索索引,然后通過索引找到磁盤相應數據,這也就是為什么索引不在key buffer命中時,速度慢的原因。

007主鍵索引是聚集索引還是非聚集索引?

1.聚集索引決定了數據庫的物理存儲結構,而主鍵只是確定表格邏輯組織方式。這兩者不可混淆!
2.在InnoDB下主鍵索引是聚集索引,在MyISAM下主鍵索引是非聚集索引。

008存儲過程和函數的區別?

存儲過程是用戶定義的一系列sql語句的集合,涉及特定表或其它對象的任務,用戶可以調用存儲過程,而函數通常是數據庫已定義的方法,它接收參數并返回某種類型的值并且不涉及特定用戶表。

009什么是存儲過程?有哪些優缺點?

存儲過程,就是一些編譯好了的SQL語句,這些SQL語句代碼像一個方法一樣實現一些功能(對單表或多表的增刪改查),然后給這些代碼塊取一個名字,在用到這個功能的時候調用即可。
優點:存儲過程是一個預編譯的代碼塊,執行效率比較高;存儲過程在服務器端運行,減少客戶端的壓力;允許模塊化程序設計,只需要創建一次過程,以后在程序中就可以調用該過程任意次,類似方法的復用;一個存儲過程替代大量T_SQL語句 ,可以降低網絡通信量,提高通信速率;可以一定程度上確保數據安全。
缺點:調試麻煩、可移植性不靈活、重新編譯問題.

010什么是觸發器?觸發器的使用場景有哪些?

1)觸發器,指一段代碼,當觸發某個事件時,自動執行這些代碼。
2)使用場景:可以通過數據庫中的相關表實現級聯更改;實時監控某張表中的某個字段的更改而需要做出相應的處理。

011什么叫視圖?

視圖是一種虛擬的表,具有和物理表相同的功能。可以對視圖進行增,改,查,操作,視圖通常是有一個表或者多個表的行或列的子集。對視圖的修改不影響基本表。它使得我們獲取數據更容易,相比多表查詢。

012什么是游標?

游標:是對查詢出來的結果集作為一個單元來有效的處理。游標可以定在該單元中的特定行,從結果集的當前行檢索一行或多行??梢詫Y果集當前行做修改。一般不使用游標,但是需要逐條處理數據的時候,游標顯得十分重要。

013視圖的作用?以及視圖可以更新數據嗎?

1)使用視圖可以簡化復雜的sql操作,隱藏具體的細節,保護數據;
2)視圖不能被索引,也不能有關聯的觸發器或默認值,如果視圖本身內有order by則對視圖再次order by將被覆蓋。對于某些視圖,例如,未使用聯結子查詢分組聚集函數Distinct Union等,是可以對其更新的,對視圖的更新將對基表進行更新;但是視圖主要用于簡化檢索,保護數據,并不用于更新,而且大部分視圖都不可以更新。

014什么是數據庫連接池?為什么需要數據庫連接池呢?

數據庫連接是一種關鍵的有限的昂貴的資源,對數據庫連接的管理能顯著影響到整個應用程序的伸縮性和健壯性,影響到程序 的性能指標。數據庫連接池正是針對這個問題提出來的。
數據庫連接池負責分配、管理和釋放數據庫連接,它允許應用程序重復使用一個現有的數據庫連接,而不是重新建立一個;釋放空閑時間超過最大空閑時間的數據庫連接來避免因為沒有釋放數據庫連接而引起的數據庫連接遺漏。這項技術能明顯提高對數據庫操作的性能。
數據庫連接池在初始化時將創建一定數量的數據庫連接放到連接池中,這些數據庫連接的數量是由最小數據庫連接數來設定的。無論這些數據庫連接是否被使用,連接池都將一直保證至少擁有這么多的連接數量。連接池的最大數據庫連接數量限定了 這個連接池能占有的最大連接數,當應用程序向連接池請求的連接數超過最大連接數量時,這些請求將被加入到等待隊列中。

目錄

返回頂部
主站蜘蛛池模板: 亚洲天堂2015 | 奇米影视第四色在线观看 | 亚洲综合无码一区二区 | 国产成人精品日本亚洲网站 | 天天舔天天干 | 国产精品福利自产拍网站 | 亚洲福利视频一区二区三区 | 在线欧美日韩 | 成人日批视频 | 精品综合久久久久久99 | 亚洲成综合 | a一级特黄日本大片 s色 | 欧美看片| 91色老99久久九九爱精品 | 久久精品国产国产 | 91精品国产色综合久久不 | 久久精品一区二区三区不卡牛牛 | 国产精品久久久精品视频 | 国产四虎免费精品视频 | 国产在线91观看免费观看 | 国产麻豆免费 | 婷婷成人基地 | 国产精品久久久久孕妇 | 亚洲第一视频在线播放 | 久久久久国产一级毛片高清版 | 91精品啪国产在线观看免费牛牛 | 亚洲系列中文字幕一区二区 | 婷婷午夜激情 | 精品无人区乱码1区2区 | 久在线| 亚洲欧美日韩成人一区在线 | 黄页网址在线免费观看 | 亚洲成a人v大片在线观看 | 91啦丨国产丨| 免费一区二区三区久久 | 亚洲精品国产精品乱码视色 | 国内精品日本久久久久影院 | 国内精品伊人久久久久妇 | 亚洲精品九色在线网站 | 视色tv | 久久8|