日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
深入探討:事務(wù)和數(shù)據(jù)庫(kù)的關(guān)系(試論述你對(duì)事務(wù)的認(rèn)識(shí)數(shù)據(jù)庫(kù))

數(shù)據(jù)庫(kù)作為現(xiàn)代信息系統(tǒng)存儲(chǔ)、管理和查詢數(shù)據(jù)的重要手段,其在工業(yè)界和學(xué)術(shù)領(lǐng)域的應(yīng)用日益廣泛,越來(lái)越多的人開始了解數(shù)據(jù)庫(kù)的基本概念和應(yīng)用方法。其中涉及的一個(gè)基礎(chǔ)概念是數(shù)據(jù)庫(kù)事務(wù),也稱數(shù)據(jù)事務(wù),它是指把若干個(gè)數(shù)據(jù)庫(kù)操作序列化成一組原子性操作,要么全部執(zhí)行,要么全部不執(zhí)行。

創(chuàng)新互聯(lián)是專業(yè)的古縣網(wǎng)站建設(shè)公司,古縣接單;提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行古縣網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

數(shù)據(jù)庫(kù)事務(wù)是所有數(shù)據(jù)庫(kù)操作的基礎(chǔ),它保證了數(shù)據(jù)庫(kù)的一致性、隔離性、持久性和原子性,有效地防止了并發(fā)操作引起的數(shù)據(jù)丟失、修改不一致等問(wèn)題。事務(wù)對(duì)數(shù)據(jù)庫(kù)操作的影響不可忽視,本文將深入探討事務(wù)和數(shù)據(jù)庫(kù)的關(guān)系。

一、事務(wù)的定義和屬性

1.1 事務(wù)的定義

數(shù)據(jù)庫(kù)事務(wù)是指作為單個(gè)邏輯工作單元執(zhí)行的一系列操作,它要么全部執(zhí)行,要么全部不執(zhí)行,這保證了操作的原子性和一致性。事務(wù)可以理解為一組原子性的操作,它們要么都執(zhí)行、要么都不執(zhí)行,如果事務(wù)中的某個(gè)操作失敗,整個(gè)事務(wù)會(huì)回滾并且所有的操作都失效。

1.2 事務(wù)的屬性

ACID是指事務(wù)應(yīng)該具有的四個(gè)屬性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability)。

原子性是指事務(wù)是不可分割的,它把數(shù)據(jù)庫(kù)操作序列化成一組原子性操作,要么全部執(zhí)行,要么全部不執(zhí)行。

一致性是指事務(wù)執(zhí)行前后,數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變?yōu)榱硪粋€(gè)一致性狀態(tài),所有的約束和規(guī)則都必須滿足。

隔離性是指在事務(wù)處理期間,一個(gè)事務(wù)所做的修改在事務(wù)未結(jié)束時(shí)不能被其他事務(wù)看到,每個(gè)事務(wù)是獨(dú)立的。

持久性是指一旦事務(wù)提交,它所做的修改就被永久保存在數(shù)據(jù)庫(kù)中,即使出現(xiàn)系統(tǒng)故障,這些修改也不會(huì)丟失。

二、數(shù)據(jù)庫(kù)事務(wù)的實(shí)現(xiàn)

2.1 事務(wù)模型

數(shù)據(jù)庫(kù)事務(wù)的實(shí)現(xiàn)可以使用兩種不同的模型:提交提交提交(Commit on Write)和提交讀(Commit on Read)。實(shí)現(xiàn)這兩種事務(wù)模型的方法是不同的,它們各有特點(diǎn),需要根據(jù)不同的業(yè)務(wù)需求進(jìn)行選擇。

提交提交提交(Commit on Write)是指事務(wù)所做的修改要在事務(wù)提交時(shí)才能寫入數(shù)據(jù)庫(kù),它需要對(duì)所有的修改進(jìn)行鎖定,以保證事務(wù)的可靠性和一致性。

提交讀(Commit on Read)是指讀和寫在提交時(shí)分別完成,即事務(wù)要么讀到了已經(jīng)提交的數(shù)據(jù),要么讀到了尚未提交的數(shù)據(jù),在事務(wù)結(jié)束前,讀取到的數(shù)據(jù)將持續(xù)不變。它需要對(duì)讀取的數(shù)據(jù)進(jìn)行鎖定,以保證事務(wù)的隔離性和一致性。

2.2 鎖機(jī)制

為了保證事務(wù)的原子性、一致性、隔離性和持久性,數(shù)據(jù)庫(kù)實(shí)現(xiàn)事務(wù)的核心技術(shù)之一是鎖機(jī)制。鎖機(jī)制可以保證事務(wù)的正確性,但是過(guò)多的鎖會(huì)降低系統(tǒng)的性能,需要在實(shí)際應(yīng)用中進(jìn)行平衡。

數(shù)據(jù)庫(kù)鎖分為行級(jí)鎖、表級(jí)鎖和頁(yè)面級(jí)鎖。行級(jí)鎖是指在讀寫事務(wù)過(guò)程中的某一行進(jìn)行加鎖,它可以有效地提高并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)的效率,但對(duì)于大量更新操作的表格不太合適。表級(jí)鎖和頁(yè)面級(jí)鎖是指在讀寫事務(wù)過(guò)程中對(duì)整個(gè)表格或頁(yè)面進(jìn)行加鎖,可以避免行級(jí)鎖加鎖次數(shù)過(guò)多造成的性能問(wèn)題,但是可能會(huì)影響異步讀操作的性能。

2.3 并發(fā)控制

并發(fā)控制是數(shù)據(jù)庫(kù)實(shí)現(xiàn)事務(wù)的另外一個(gè)重要技術(shù),它可以控制多個(gè)并發(fā)事務(wù)的執(zhí)行順序和并發(fā)沖突,保證數(shù)據(jù)庫(kù)的一致性、隔離性和原子性。在實(shí)際應(yīng)用中,數(shù)據(jù)庫(kù)通常使用多種并發(fā)控制技術(shù),如讀寫鎖、可重復(fù)讀、提交讀等,以保證事務(wù)的正確執(zhí)行。

三、數(shù)據(jù)庫(kù)事務(wù)的應(yīng)用

3.1 金融應(yīng)用

在金融應(yīng)用中,事務(wù)是保證數(shù)據(jù)一致性、安全性和穩(wěn)定性的最基本手段。數(shù)據(jù)庫(kù)的事務(wù)實(shí)現(xiàn)在金融領(lǐng)域有非常廣泛的應(yīng)用,比如在銀行、證券交易、基金管理、保險(xiǎn)等領(lǐng)域都大量使用事務(wù)以保證數(shù)據(jù)的一致性和安全性。在交易過(guò)程中,事務(wù)能夠有效地控制交易的過(guò)程和記錄的有效性,為金融交易提供了可靠的保障。

3.2 電子商務(wù)應(yīng)用

在電子商務(wù)領(lǐng)域中,事務(wù)是保證數(shù)據(jù)完整性和準(zhǔn)確性的重要手段。電子商務(wù)平臺(tái)需要保障用戶的訂單、支付、物流、售后等操作的可靠性和一致性,任何一個(gè)操作都必須要通過(guò)事務(wù)來(lái)實(shí)現(xiàn)。電子商務(wù)應(yīng)用常常需要實(shí)現(xiàn)高并發(fā)、大數(shù)據(jù)量、多用戶等多種復(fù)雜場(chǎng)景,只有通過(guò)嚴(yán)格的事務(wù)控制,才能保證系統(tǒng)的穩(wěn)定性和性能。

3.3 其他應(yīng)用

事務(wù)在數(shù)據(jù)庫(kù)應(yīng)用中還有很多其他的應(yīng)用場(chǎng)景,比如醫(yī)療、教育、物流等行業(yè)。在醫(yī)療領(lǐng)域,醫(yī)療機(jī)構(gòu)需要保障患者病歷、檢查記錄、醫(yī)療報(bào)告等數(shù)據(jù)的完整性和保密性;在教育領(lǐng)域,學(xué)校需要保證學(xué)生課程表、成績(jī)、考試記錄等數(shù)據(jù)的準(zhǔn)確性和及時(shí)性。這些都需要在實(shí)際應(yīng)用中使用事務(wù)進(jìn)行控制。

四、

本文從事務(wù)的定義和屬性、數(shù)據(jù)庫(kù)事務(wù)的實(shí)現(xiàn)、數(shù)據(jù)庫(kù)事務(wù)的應(yīng)用等方面,對(duì)事務(wù)的概念和數(shù)據(jù)庫(kù)的關(guān)系進(jìn)行了深入探討。事務(wù)是數(shù)據(jù)庫(kù)操作的基本單位,也是保證數(shù)據(jù)庫(kù)可靠性和一致性的重要手段。在實(shí)際應(yīng)用中,應(yīng)根據(jù)不同的業(yè)務(wù)需求選擇不同的事務(wù)模型和技術(shù)實(shí)現(xiàn),以保障數(shù)據(jù)的安全性和可靠性。

相關(guān)問(wèn)題拓展閱讀:

  • 職場(chǎng) | 數(shù)據(jù)庫(kù)面試常問(wèn)的一些基本概念
  • 求:《數(shù)據(jù)庫(kù)》什么是事務(wù)日志,事務(wù)日志包括什么內(nèi)容? 了解SQL的GRANT 和REVOKE語(yǔ)句

職場(chǎng) | 數(shù)據(jù)庫(kù)面試常問(wèn)的一些基本概念

1、超鍵、候選鍵、主鍵、外鍵

超鍵:在關(guān)系中能唯一標(biāo)識(shí)元組的屬性集稱為關(guān)系模式的超鍵。一個(gè)屬性可以為作為一個(gè)李畢超鍵,多個(gè)屬性組合在一起也可以作為一個(gè)超鍵。超鍵包含候選鍵和主鍵。

候選鍵:是最小超鍵,即沒有冗余元素的超鍵。

主鍵:數(shù)據(jù)庫(kù)表中對(duì)儲(chǔ)存數(shù)據(jù)對(duì)象予以唯一和完整標(biāo)識(shí)的數(shù)據(jù)列或?qū)傩缘慕M合。一個(gè)數(shù)據(jù)列只能有一個(gè)主鍵,且主鍵的取值不能缺失,即不能為空值(Null)。

外鍵:在一個(gè)表中存在的另一個(gè)表的主鍵稱此表的外鍵。

2、什么是事務(wù)?什么是鎖?

事務(wù):就是被綁定在一起作為一個(gè)邏輯工作單元的SQL語(yǔ)句分組,如果任何一個(gè)語(yǔ)句操作失敗那么整個(gè)操作就被失敗,以后操作就會(huì)回滾到操作前狀態(tài),或者是上有個(gè)節(jié)點(diǎn)。為了確保要么執(zhí)行,要么不執(zhí)行,就可以使用事務(wù)。要將有組語(yǔ)句作為事務(wù)考慮,就需要通過(guò)ACID測(cè)試,即原子培辯性,一致性,隔離性和持久性。

鎖:在所以的DBMS中,鎖是實(shí)現(xiàn)事務(wù)的關(guān)鍵,鎖可以保證事務(wù)的完整性和并發(fā)性。與現(xiàn)實(shí)生活中鎖一樣,它可以使某些數(shù)據(jù)的擁有者,在某段時(shí)間內(nèi)不能使用某些數(shù)據(jù)或數(shù)據(jù)結(jié)構(gòu)。當(dāng)然鎖還分級(jí)別的。

3、數(shù)據(jù)庫(kù)事務(wù)的四個(gè)特性及含義

原子性:整個(gè)事務(wù)中的所有操作,要么全部完成,要么全部不完成,不可能停滯在中間某個(gè)環(huán)節(jié)。事務(wù)在執(zhí)行過(guò)程中發(fā)生錯(cuò)誤,會(huì)被回滾(Rollback)到事務(wù)開始前的狀態(tài),就像這個(gè)事務(wù)從來(lái)沒有執(zhí)行過(guò)一樣。

一致性:在事務(wù)開始之前和事務(wù)結(jié)束以后,數(shù)據(jù)庫(kù)的完整性約束沒有被破壞。

隔離性:隔離狀態(tài)執(zhí)行事務(wù),使它們好像是系統(tǒng)在給定時(shí)間內(nèi)執(zhí)行的唯一操作。如果有兩個(gè)事務(wù),運(yùn)行在相同的時(shí)間內(nèi),執(zhí)行相同的功能,事務(wù)的隔離性將確保每一事務(wù)在系統(tǒng)中認(rèn)為只有該事務(wù)在使用系統(tǒng)。這種屬性有時(shí)稱為串行化,為了防止事務(wù)操作間的混淆,必須串行化或序列化請(qǐng)求,使得在同一時(shí)間僅有一個(gè)請(qǐng)求用于同一數(shù)據(jù)。

持久性:在事務(wù)完成以后,該事務(wù)所對(duì)數(shù)據(jù)庫(kù)所作的更改便持久的保存在數(shù)據(jù)庫(kù)之中,并不會(huì)被回滾。

4、什么是視圖?

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

如下兩種場(chǎng)景一般會(huì)使用到視圖:

(1)不希望訪問(wèn)者獲取整個(gè)表的信息,只暴露部分字段給訪問(wèn)者,所以就建一個(gè)虛表,就是視圖。

(2)查詢的數(shù)據(jù)來(lái)源于不同的表,而查詢者希望以統(tǒng)一的方式查詢,這樣也可以建立一個(gè)視圖,把多個(gè)表查詢結(jié)果聯(lián)合起來(lái),查詢者只需要直接從視圖中獲取數(shù)據(jù),不必考慮數(shù)據(jù)來(lái)源于不同表所帶來(lái)的差異。

注:這個(gè)視圖是在數(shù)據(jù)庫(kù)中創(chuàng)建的而不是用代碼創(chuàng)建的。

5、觸發(fā)器的作用?

觸發(fā)器是一中特殊的存儲(chǔ)過(guò)程,主要是通過(guò)事件來(lái)觸發(fā)而被執(zhí)行的。它可以強(qiáng)化約束,來(lái)維護(hù)數(shù)據(jù)的完整性和一致性,可以跟蹤數(shù)據(jù)庫(kù)內(nèi)的操作從而不允許未經(jīng)許可的更新和變化??梢月?lián)級(jí)運(yùn)算。如,某表上的觸發(fā)器上包含對(duì)另一個(gè)表的數(shù)據(jù)操作,而該操作又會(huì)導(dǎo)致該表觸發(fā)器被觸發(fā)。

6、維護(hù)數(shù)據(jù)庫(kù)的完整性和一致性,你喜歡用觸發(fā)器還是自寫業(yè)務(wù)邏輯?為什么?

盡可能使用約束,如check,主鍵,外鍵,非空字段等來(lái)約束,這樣做效率更高,也最方便。其次是使用觸發(fā)器,這種方法可以保證,無(wú)論什么業(yè)務(wù)系統(tǒng)配擾缺訪問(wèn)數(shù)據(jù)庫(kù)都可以保證數(shù)據(jù)的完整新和一致性。最后考慮的是自寫業(yè)務(wù)邏輯,但這樣做麻煩,編程復(fù)雜,效率低下。

7、索引的作用?和它的優(yōu)點(diǎn)缺點(diǎn)是什么?

數(shù)據(jù)庫(kù)索引,是數(shù)據(jù)庫(kù)管理系統(tǒng)中一個(gè)排序的數(shù)據(jù)結(jié)構(gòu),以協(xié)助快速查詢、更新數(shù)據(jù)庫(kù)表中數(shù)據(jù)。索引的實(shí)現(xiàn)通常使用B樹及其變種B+樹。

在數(shù)據(jù)之外,數(shù)據(jù)庫(kù)系統(tǒng)還維護(hù)著滿足特定查找算法的數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)以某種方式引用(指向)數(shù)據(jù),這樣就可以在這些數(shù)據(jù)結(jié)構(gòu)上實(shí)現(xiàn)高級(jí)查找算法。這種數(shù)據(jù)結(jié)構(gòu),就是索引。

為表設(shè)置索引要付出代價(jià)的:一是增加了數(shù)據(jù)庫(kù)的存儲(chǔ)空間,二是在插入和修改數(shù)據(jù)時(shí)要花費(fèi)較多的時(shí)間(因?yàn)樗饕惨S之變動(dòng))。

創(chuàng)建索引可以大大提高系統(tǒng)的性能(優(yōu)點(diǎn)):

之一,通過(guò)創(chuàng)建唯一性索引,可以保證數(shù)據(jù)庫(kù)表中每一行數(shù)據(jù)的唯一性。

第二,可以大大加快數(shù)據(jù)的檢索速度,這也是創(chuàng)建索引的最主要的原因。

第三,可以加速表和表之間的連接,特別是在實(shí)現(xiàn)數(shù)據(jù)的參考完整性方面特別有意義。

第四,在使用分組和排序子句進(jìn)行數(shù)據(jù)檢索時(shí),同樣可以顯著減少查詢中分組和排序的時(shí)間。

第五,通過(guò)使用索引,可以在查詢的過(guò)程中,使用優(yōu)化隱藏器,提高系統(tǒng)的性能。

也許會(huì)有人要問(wèn):增加索引有如此多的優(yōu)點(diǎn),為什么不對(duì)表中的每一個(gè)列創(chuàng)建一個(gè)索引呢?因?yàn)椋黾铀饕灿性S多不利的方面:

之一,創(chuàng)建索引和維護(hù)索引要耗費(fèi)時(shí)間,這種時(shí)間隨著數(shù)據(jù)量的增加而增加。

第二,索引需要占物理空間,除了數(shù)據(jù)表占數(shù)據(jù)空間之外,每一個(gè)索引還要占一定的物理空間,如果要建立聚簇索引,那么需要的空間就會(huì)更大。

第三,當(dāng)對(duì)表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時(shí)候,索引也要?jiǎng)討B(tài)的維護(hù),這樣就降低了數(shù)據(jù)的維護(hù)速度。

索引是建立在數(shù)據(jù)庫(kù)表中的某些列的上面。在創(chuàng)建索引的時(shí)候,應(yīng)該考慮在哪些列上可以創(chuàng)建索引,在哪些列上不能創(chuàng)建索引。

一般來(lái)說(shuō),應(yīng)該在這些列上創(chuàng)建索引:

(1)在經(jīng)常需要搜索的列上,可以加快搜索的速度;

(2)在作為主鍵的列上,強(qiáng)制該列的唯一性和組織表中數(shù)據(jù)的排列結(jié)構(gòu);

(3)在經(jīng)常用在連接的列上,這些列主要是一些外鍵,可以加快連接的速度;

(4)在經(jīng)常需要根據(jù)范圍進(jìn)行搜索的列上創(chuàng)建索引,因?yàn)樗饕呀?jīng)排序,其指定的范圍是連續(xù)的;

(5)在經(jīng)常需要排序的列上創(chuàng)建索引,因?yàn)樗饕呀?jīng)排序,這樣查詢可以利用索引的排序,加快排序查詢時(shí)間;

(6)在經(jīng)常使用在WHERE子句中的列上面創(chuàng)建索引,加快條件的判斷速度。

同樣,對(duì)于有些列不應(yīng)該創(chuàng)建索引:

之一,對(duì)于那些在查詢中很少使用或者參考的列不應(yīng)該創(chuàng)建索引。這是因?yàn)?,既然這些列很少使用到,因此有索引或者無(wú)索引,并不能提高查詢速度。相反,由于增加了索引,反而降低了系統(tǒng)的維護(hù)速度和增大了空間需求。

第二,對(duì)于那些只有很少數(shù)據(jù)值的列也不應(yīng)該增加索引。這是因?yàn)?,由于這些列的取值很少,例如人事表的性別列,在查詢的結(jié)果中,結(jié)果集的數(shù)據(jù)行占了表中數(shù)據(jù)行的很大比例,即需要在表中搜索的數(shù)據(jù)行的比例很大。增加索引,并不能明顯加快檢索速度。

第三,對(duì)于那些定義為text,image和bit數(shù)據(jù)類型的列不應(yīng)該增加索引。這是因?yàn)椋@些列的數(shù)據(jù)量要么相當(dāng)大,要么取值很少。

第四,當(dāng)修改性能遠(yuǎn)遠(yuǎn)大于檢索性能時(shí),不應(yīng)該創(chuàng)建索引。這是因?yàn)椋薷男阅芎蜋z索性能是互相矛盾的。當(dāng)增加索引時(shí),會(huì)提高檢索性能,但是會(huì)降低修改性能。當(dāng)減少索引時(shí),會(huì)提高修改性能,降低檢索性能。因此,當(dāng)修改性能遠(yuǎn)遠(yuǎn)大于檢索性能時(shí),不應(yīng)該創(chuàng)建索引。

8、drop,delete與truncate的區(qū)別

drop直接刪掉表。

truncate刪除表中數(shù)據(jù),再插入時(shí)自增長(zhǎng)id又從1開始。

delete刪除表中數(shù)據(jù),可以加where字句。

(1)DELETE語(yǔ)句執(zhí)行刪除的過(guò)程是每次從表中刪除一行,并且同時(shí)將該行的刪除操作作為事務(wù)記錄在日志中保存以便進(jìn)行進(jìn)行回滾操作。TRUNCATETABLE則一次性地從表中刪除所有的數(shù)據(jù)并不把單獨(dú)的刪除操作記錄記入日志保存,刪除行是不能恢復(fù)的。并且在刪除的過(guò)程中不會(huì)激活與表有關(guān)的刪除觸發(fā)器。執(zhí)行速度快。

(2)表和索引所占空間。當(dāng)表被TRUNCATE后,這個(gè)表和索引所占用的空間會(huì)恢復(fù)到初始大小,而DELETE操作不會(huì)減少表或索引所占用的空間。drop語(yǔ)句將表所占用的空間全釋放掉。

(3)一般而言,drop>truncate>delete

(4)應(yīng)用范圍。TRUNCATE只能對(duì)TABLE;DELETE可以是table和view

(5)TRUNCATE和DELETE只刪除數(shù)據(jù),而DROP則刪除整個(gè)表(結(jié)構(gòu)和數(shù)據(jù))。

(6)truncate與不帶where的delete:只刪除數(shù)據(jù),而不刪除表的結(jié)構(gòu)(定義)drop語(yǔ)句將刪除表的結(jié)構(gòu)被依賴的約束(constrain),觸發(fā)器(trigger)索引(index);依賴于該表的存儲(chǔ)過(guò)程/函數(shù)將被保留,但其狀態(tài)會(huì)變?yōu)椋篿nvalid。

(7)delete語(yǔ)句為DML(datamaintainLanguage),這個(gè)操作會(huì)被放到rollbacksegment中,事務(wù)提交后才生效。如果有相應(yīng)的tigger,執(zhí)行的時(shí)候?qū)⒈挥|發(fā)。

(8)truncate、drop是DLL(datadefinelanguage),操作立即生效,原數(shù)據(jù)不放到rollbacksegment中,不能回滾。

(9)在沒有備份情況下,謹(jǐn)慎使用drop與truncate。要?jiǎng)h除部分?jǐn)?shù)據(jù)行采用delete且注意結(jié)合where來(lái)約束影響范圍?;貪L段要足夠大。要?jiǎng)h除表用drop;若想保留表而將表中數(shù)據(jù)刪除,如果于事務(wù)無(wú)關(guān),用truncate即可實(shí)現(xiàn)。如果和事務(wù)有關(guān),或老師想觸發(fā)trigger,還是用delete。

(10)Truncatetable表名速度快,而且效率高,因?yàn)?

truncatetable在功能上與不帶WHERE子句的DELETE語(yǔ)句相同:二者均刪除表中的全部行。但TRUNCATETABLE比DELETE速度快,且使用的系統(tǒng)和事務(wù)日志資源少。DELETE語(yǔ)句每次刪除一行,并在事務(wù)日志中為所刪除的每行記錄一項(xiàng)。TRUNCATETABLE通過(guò)釋放存儲(chǔ)表數(shù)據(jù)所用的數(shù)據(jù)頁(yè)來(lái)刪除數(shù)據(jù),并且只在事務(wù)日志中記錄頁(yè)的釋放。

(11)TRUNCATETABLE刪除表中的所有行,但表結(jié)構(gòu)及其列、約束、索引等保持不變。新行標(biāo)識(shí)所用的計(jì)數(shù)值重置為該列的種子。如果想保留標(biāo)識(shí)計(jì)數(shù)值,請(qǐng)改用DELETE。如果要?jiǎng)h除表定義及其數(shù)據(jù),請(qǐng)使用DROPTABLE語(yǔ)句。

(12)對(duì)于由FOREIGNKEY約束引用的表,不能使用TRUNCATETABLE,而應(yīng)使用不帶WHERE子句的DELETE語(yǔ)句。由于TRUNCATETABLE不記錄在日志中,所以它不能激活觸發(fā)器。

文 | u

來(lái)源 | CSDN博客

原文鏈接:

求:《數(shù)據(jù)庫(kù)》什么是事務(wù)日志,事務(wù)日志包括什么內(nèi)容? 了解SQL的GRANT 和REVOKE語(yǔ)句

課本上都有、百度可搜、還提問(wèn)。。。

事務(wù)日志是一個(gè)與數(shù)據(jù)庫(kù)文件分開的文件。它存儲(chǔ)對(duì)數(shù)據(jù)庫(kù)進(jìn)行的所有更改,并全部記錄插入、更新、刪除、提交、回退和數(shù)據(jù)庫(kù)模式變化。事務(wù)日志還稱作前滾日志或重做日志。

事務(wù)日志是備份和恢復(fù)的重要組件,肢碰舉也是使用 SQL Remote 或 復(fù)制數(shù)據(jù)所必需的。

在缺省情況下,所有數(shù)據(jù)庫(kù)都使用事務(wù)日志。事務(wù)歷碧日志的使用是可選的,但是,除非您因特殊原因而不使用,否則您應(yīng)始終使用它。運(yùn)行帶有事務(wù)日志的數(shù)據(jù)庫(kù)可提供更強(qiáng)的故障保護(hù)功能、更好的性能以及數(shù)據(jù)復(fù)制功能。

每個(gè) Microsoft? SQL Server? 2023 數(shù)據(jù)庫(kù)都有事務(wù)日志,用以記錄所有事務(wù)和每個(gè)事務(wù)對(duì)數(shù)據(jù)庫(kù)所做的修改。記錄事務(wù)及其修改有三個(gè)作用:

恢復(fù)個(gè)別的事務(wù)。

如果應(yīng)用程序發(fā)出 ROLLBACK 語(yǔ)句,或者 SQL Server 檢測(cè)到錯(cuò)誤(例如失去與客戶端的通訊),就使用日志記錄回滾未完成的事務(wù)所做的修改。

SQL Server 啟動(dòng)時(shí)恢復(fù)所有未完成的事務(wù)。

當(dāng)運(yùn)行 SQL Server 的服務(wù)器發(fā)生故障時(shí),數(shù)據(jù)庫(kù)可能處于這樣的狀態(tài):還沒有將修改從高速緩沖存儲(chǔ)器寫入數(shù)據(jù)文件,在數(shù)據(jù)文件內(nèi)有未完成的事務(wù)所做的修改。當(dāng)啟動(dòng) SQL Server 的復(fù)本時(shí),它對(duì)每個(gè)數(shù)據(jù)庫(kù)執(zhí)行恢復(fù)操作。前滾日志中記錄的、可能尚未寫入數(shù)據(jù)文件的每個(gè)修改。然后回滾在事務(wù)日志中找到的每個(gè)未完成的事務(wù),以確保數(shù)據(jù)庫(kù)的完整性。

將還原的數(shù)據(jù)庫(kù)前滾到故障點(diǎn)。

丟失數(shù)據(jù)庫(kù)(在沒有 RAID 驅(qū)動(dòng)器的服務(wù)器上,硬盤驅(qū)動(dòng)器出現(xiàn)故障時(shí)可能會(huì)出現(xiàn)這種情況)后,可以將數(shù)據(jù)庫(kù)還原到故障點(diǎn)。首先還原上一次的完整數(shù)據(jù)庫(kù)備份或差異數(shù)據(jù)庫(kù)備份,然后將事務(wù)日志備份序列還原到故障點(diǎn)。當(dāng)還原每個(gè)日志備份時(shí),SQL Server 重新應(yīng)用日志中記錄的所有修改以前滾所有事務(wù)。當(dāng)最后的日志備份還原后,SQL Server 將使吵殲用日志信息回滾到該點(diǎn)未完成的所有事務(wù)。

SQL Server 2023 事務(wù)日志的特點(diǎn)是:

事務(wù)日志不是作為一個(gè)表實(shí)現(xiàn),而是作為單獨(dú)的文件或數(shù)據(jù)庫(kù)內(nèi)的一組文件實(shí)現(xiàn)。日志高速緩存與數(shù)據(jù)頁(yè)的高速緩沖存儲(chǔ)器分開管理,從而使數(shù)據(jù)庫(kù)引擎內(nèi)的編碼更簡(jiǎn)單、更快速和更可靠。

日志記錄和頁(yè)的格式不必遵守?cái)?shù)據(jù)頁(yè)的格式。

事務(wù)日志可以在幾個(gè)文件上實(shí)現(xiàn)??梢愿鶕?jù)需要定義這些文件為自動(dòng)增長(zhǎng)。這樣可減少事務(wù)日志內(nèi)空間不足的可能性,同時(shí)減少管理開銷。

截?cái)嗳罩局形从貌糠值臋C(jī)制速度快且對(duì)事務(wù)吞吐量影響最小。

GRANT是授予權(quán)限

REVOKE是撤銷權(quán)限

GRANT

名稱

GRANT — 賦予一個(gè)用戶,一個(gè)組或所有用戶訪問(wèn)權(quán)限

語(yǔ)法

GRANT privilege ON object

TO { PUBLIC | GROUP group | username }

輸入

privilege

可能的權(quán)限有:

SELECT

訪問(wèn)聲明的表/視圖的所有列/字段.

INSERT

向聲明的表中插入所有列字段.

UPDATE

更新聲明的表所有列/字段.

DELETE

從聲明的表中刪除所有行.

RULE

在表/視圖上定義規(guī)則 (參見 CREATE RULE 語(yǔ)句).

ALL

賦予所有權(quán)限.

object

賦予權(quán)限的對(duì)象名.可能的對(duì)象是:

table

view

sequence

PUBLIC

代表是所有用戶的簡(jiǎn)寫.

GROUP group

將要賦予權(quán)限的組 group .

username

將要賦予權(quán)限的用戶名.PUBLIC 是代表所有用戶的簡(jiǎn)寫.

輸出

CHANGE

如果成功,返回此信息.

ERROR: ChangeAcl: class “object” not found

如果所聲明的對(duì)象不可用或不可能對(duì)聲明的組或用戶賦予權(quán)限.

描述

GRANT 允許對(duì)象的創(chuàng)建者給某用戶或某組或所有用戶(PUBLIC)某些特定的權(quán)限.對(duì)象創(chuàng)建后,除了創(chuàng)建者外,除非創(chuàng)建者賦予(GRANT)權(quán)限,其他人沒有訪問(wèn)對(duì)象的權(quán)限.

一旦用戶有某對(duì)象的權(quán)限,他就可以使用那個(gè)特權(quán).不需要給創(chuàng)建者賦予(GRANT)對(duì)象的權(quán)限,創(chuàng)建者自動(dòng)擁有對(duì)象的所有權(quán)限,包括刪除它的權(quán)限.

注意

目前,要想在 Postgres 里面只賦予幾列權(quán)限,你必須創(chuàng)建一個(gè)包含那幾列的視圖(view),然后把權(quán)限賦予那幾個(gè)視圖。

使用 psql \z 命令獲取關(guān)于現(xiàn)存對(duì)象權(quán)限的更多信息:

Database = lusitania

+—-+—+

| Relation|Grant/Revoke Permissions|

+—-+—+

| mytable| {“=rw”,”miriam=arwR”,”group todos=rw”} |

+—-+—+

Legend:

uname=arwR — privileges granted to a user

group gname=arwR — privileges granted to a GROUP

=arwR — privileges granted to PUBLIC

r — SELECT

w — UPDATE/DELETE

a — INSERT

R — RULE

arwR — ALL

參考 REVOKE 語(yǔ)句廢除訪問(wèn)權(quán)限.

用法

給所有用戶向表 films 插入記錄的權(quán)限:

GRANT INSERT ON films TO PUBLIC;

賦予用戶 manuel 操作視圖 kinds 的所有權(quán)限:

GRANT ALL ON kinds TO manuel;

兼容性

SQL92

SQL92 GRANT 語(yǔ)法允許對(duì)表中的某單獨(dú)列/字段設(shè)置權(quán)限,并且允許設(shè)置一權(quán)限以賦予別人相同權(quán)限:

GRANT privilege

ON object ) >

TO { PUBLIC | username }

這些字段與 Postgres 實(shí)現(xiàn)是兼容的,除了下面一些例外:

privilege

SQL92 允許聲明附加的權(quán)限:

SELECT

REFERENCES

允許在一個(gè)聲明的表的完整性約束中使用某些或全部列/字段.

USAGE

允許使用一個(gè)域,字符集,或事務(wù).如果聲明的對(duì)象不是表/視圖, privilege 只能聲明為 USAGE.

object

SQL92 允許一個(gè)附加的非功能性關(guān)鍵字 TABLE.

CHARACTER SET

允許使用聲明的字符集.

COLLATION

允許使用聲明的序列.

TRANSLATION

允許使用聲明的字符集轉(zhuǎn)換.

DOMAIN

允許使用聲明的域.

WITH GRANT OPTION

試論述你對(duì)事務(wù)的認(rèn)識(shí) 數(shù)據(jù)庫(kù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于試論述你對(duì)事務(wù)的認(rèn)識(shí) 數(shù)據(jù)庫(kù),深入探討:事務(wù)和數(shù)據(jù)庫(kù)的關(guān)系,職場(chǎng) | 數(shù)據(jù)庫(kù)面試常問(wèn)的一些基本概念,求:《數(shù)據(jù)庫(kù)》什么是事務(wù)日志,事務(wù)日志包括什么內(nèi)容? 了解SQL的GRANT 和REVOKE語(yǔ)句的信息別忘了在本站進(jìn)行查找喔。

數(shù)據(jù)庫(kù)運(yùn)維技術(shù)服務(wù) ? 深入探討:事務(wù)和數(shù)據(jù)庫(kù)的關(guān)系 (試論述你對(duì)事務(wù)的認(rèn)識(shí) 數(shù)據(jù)庫(kù))

管理員 普通

分享到:



相關(guān)推薦


如何清空數(shù)據(jù)庫(kù)中的table表格數(shù)據(jù)? (清空數(shù)據(jù)table表單數(shù)據(jù)庫(kù))


CENTOS 下 Neo4j 圖形數(shù)據(jù)庫(kù)安裝及集群搭建


連接到db2虛擬機(jī)數(shù)據(jù)庫(kù),輕松管理你的數(shù)據(jù)! (連接到虛擬機(jī)db2數(shù)據(jù)庫(kù))


了解數(shù)據(jù)庫(kù)審計(jì)日志的重要性 (數(shù)據(jù)庫(kù)審計(jì)日志)


如何創(chuàng)建本地?cái)?shù)據(jù)庫(kù)? (怎么建當(dāng)?shù)財(cái)?shù)據(jù)庫(kù))


iOS如何遠(yuǎn)程連接數(shù)據(jù)庫(kù)? (ios 連接遠(yuǎn)程數(shù)據(jù)庫(kù))


Windows 2012 開啟遠(yuǎn)程桌面


TP5實(shí)現(xiàn)多個(gè)數(shù)據(jù)庫(kù)的設(shè)置方法詳解 (tp5設(shè)置多個(gè)數(shù)據(jù)庫(kù))

隨機(jī)文章


數(shù)據(jù)庫(kù)系統(tǒng)概論P(yáng)DF下載完整版 (數(shù)據(jù)庫(kù)系統(tǒng)概論 pdf下載)

數(shù)據(jù)庫(kù)組合主鍵的設(shè)置方法 (數(shù)據(jù)庫(kù)怎么設(shè)置組合主鍵)

IIS與PHP搭配,如何配置數(shù)據(jù)庫(kù)? (iis php 配置數(shù)據(jù)庫(kù))

P數(shù)據(jù)庫(kù)模板介紹及源代碼分享 (jsp源代碼帶數(shù)據(jù)庫(kù)的模板)

大數(shù)據(jù)浪潮下的數(shù)據(jù)庫(kù)應(yīng)用程序 (大數(shù)據(jù)對(duì)數(shù)據(jù)庫(kù)的應(yīng)用程序)

數(shù)據(jù)庫(kù)備份和快照的區(qū)別,了解一下! (數(shù)據(jù)庫(kù)備份和快照區(qū)別)

最近更新
  • SQL Server開啟進(jìn)銷存管理(sqlserver進(jìn)銷存)
  • Windows用戶學(xué)習(xí)Linux遠(yuǎn)程連接命令(linux 遠(yuǎn)程連接命令)
  • 手把手教你使用MySQL創(chuàng)建數(shù)據(jù)庫(kù)(mysql手動(dòng)創(chuàng)建數(shù)據(jù)庫(kù))
  • Oracle數(shù)據(jù)庫(kù)的緊縮之路(oracle 數(shù)據(jù)庫(kù)收縮)
  • 為項(xiàng)目構(gòu)建更優(yōu)性能: 使用Redis緩存(項(xiàng)目中使用redis緩存)
  • 備份簡(jiǎn)單又高效——Linux開源備份軟件(linux 開源備份軟件)
  • 改變MSSQL數(shù)據(jù)庫(kù)端口號(hào):一個(gè)簡(jiǎn)單的方法指南(改mssql數(shù)據(jù)庫(kù)端口號(hào))
  • MSSQL分區(qū)表索引:優(yōu)化數(shù)據(jù)存儲(chǔ)(mssql 分區(qū)表 索引)
  • MSSQL客戶端工具:快速下載體驗(yàn)?。╩ssql客戶端工具下載)
  • MSSQL獨(dú)占模式加速數(shù)據(jù)庫(kù)更新(mssql 獨(dú)占 更新)
  • 話題SQLServer:探索最新技術(shù)發(fā)展趨勢(shì)(關(guān)于SQLServer的)
  • 用Redis維護(hù)IP限制列表(redis ip限制)
  • MySQL如何運(yùn)行SQL文件(mysql運(yùn)行sql文件)
  • MSSQL 更新文件組結(jié)構(gòu):簡(jiǎn)便、高效、安全(MSSQL修改文件組)
  • 優(yōu)秀的SQL Server:值得信賴的性能特點(diǎn)(sqlserver 特點(diǎn))
  • MSSQL與RAVN技術(shù)結(jié)合,更好地保護(hù)數(shù)據(jù)安全(mssql ravn)
  • MSSQL數(shù)據(jù)庫(kù)密碼:查看指南(mssql數(shù)據(jù)庫(kù)密碼查看)
  • MSSQL獲取月份數(shù)據(jù)實(shí)現(xiàn)方案(mssql 獲取月份)
  • Redis緩解項(xiàng)目壓力:細(xì)節(jié)決定成?。?xiàng)目加redis)
  • 【mssql中實(shí)現(xiàn)多個(gè)like查詢的方式】(mssql 多個(gè)like)
  • 標(biāo)簽

    Linux Linux教程 Linux資訊 MacOS MacOS教程 MacOS資訊 MongoDB MongoDB教程 MongoDB資訊 MSSQL MSSQL錯(cuò)誤 MySQL mysql教程 MySQL維護(hù) MySQL資訊 Neo4j Neo4j教程 Neo4j資訊 ORACLE Oracle優(yōu)化 oracle內(nèi)部視圖 oracle參數(shù) oracle開發(fā) oracle異常修復(fù) oracle故障處理 oracle教程 oracle維護(hù) oracle視圖 ORACLE資訊 oracle遠(yuǎn)程維護(hù) ORA錯(cuò)誤碼 Redis Redis教程 Redis資訊 SQLServer SQLServer報(bào)錯(cuò) SQLServer教程 SQLServer資訊 SQL修復(fù) SQL異常 SQL遠(yuǎn)程處理 Windows 技術(shù)文檔 操作系統(tǒng) 數(shù)據(jù)庫(kù)

    技術(shù)標(biāo)簽:安裝配置、性能優(yōu)化、備份恢復(fù)、異常處理、數(shù)據(jù)遷移、咨詢服務(wù)。

    本站導(dǎo)航
    • 服務(wù)范圍
    • 關(guān)于我們
    • 隱私政策
    技術(shù)文章
    • 數(shù)據(jù)庫(kù)技術(shù)
    • 操作系統(tǒng)技術(shù)
    • 教程服務(wù)
    快速搜索

    數(shù)據(jù)恢復(fù)、異常處理、MySQL、Oracle

    本站部分資源來(lái)自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,本站一切資源不代表本站立場(chǎng),如有侵權(quán)、后門、不妥請(qǐng)聯(lián)系本站站長(zhǎng)刪除

    ? 2020 Theme by - 數(shù)據(jù)服務(wù) . All rights reserved 蘇ICP備15021567號(hào)






    • 登錄
    • 注冊(cè)

    安全登錄
    立即注冊(cè) 忘記密碼?

    table

    成都創(chuàng)新互聯(lián)建站主營(yíng):成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開發(fā)制作等網(wǎng)站服務(wù)。


    當(dāng)前標(biāo)題:深入探討:事務(wù)和數(shù)據(jù)庫(kù)的關(guān)系(試論述你對(duì)事務(wù)的認(rèn)識(shí)數(shù)據(jù)庫(kù))
    網(wǎng)頁(yè)地址:http://www.dlmjj.cn/article/ccojcch.html