數(shù)據(jù)庫(kù)部分

1、事務(wù)四大特性(ACID)

? ??⑴ 原子性(Atomicity):原子性是指事務(wù)包含的所有操作要么全部成功状蜗,要么全部失敗回滾晤锥,這和前面兩篇博客介紹事務(wù)的功能是一樣的概念护桦,因此事務(wù)的操作如果成功就必須要完全應(yīng)用到數(shù)據(jù)庫(kù),如果操作失敗則不能對(duì)數(shù)據(jù)庫(kù)有任何影響族奢。

????⑵ 一致性(Consistency):一致性是指事務(wù)必須使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變換到另一個(gè)一致性狀態(tài)氮兵,也就是說一個(gè)事務(wù)執(zhí)行之前和執(zhí)行之后都必須處于一致性狀態(tài)。拿轉(zhuǎn)賬來說歹鱼,假設(shè)用戶A和用戶B兩者的錢加起來一共是5000泣栈,那么不管A和B之間如何轉(zhuǎn)賬,轉(zhuǎn)幾次賬弥姻,事務(wù)結(jié)束后兩個(gè)用戶的錢相加起來應(yīng)該還得是5000南片,這就是事務(wù)的一致性。

????⑶ 隔離性(Isolation):隔離性是當(dāng)多個(gè)用戶并發(fā)訪問數(shù)據(jù)庫(kù)時(shí)庭敦,比如操作同一張表時(shí)疼进,數(shù)據(jù)庫(kù)為每一個(gè)用戶開啟的事務(wù),不能被其他事務(wù)的操作所干擾秧廉,多個(gè)并發(fā)事務(wù)之間要相互隔離伞广。即要達(dá)到這么一種效果:對(duì)于任意兩個(gè)并發(fā)的事務(wù)T1和T2,在事務(wù)T1看來疼电,T2要么在T1開始之前就已經(jīng)結(jié)束嚼锄,要么在T1結(jié)束之后才開始,這樣每個(gè)事務(wù)都感覺不到有其他事務(wù)在并發(fā)地執(zhí)行蔽豺。

????⑷ 持久性(Durability):持久性是指一個(gè)事務(wù)一旦被提交了区丑,那么對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)的改變就是永久性的,即便是在數(shù)據(jù)庫(kù)系統(tǒng)遇到故障的情況下也不會(huì)丟失提交事務(wù)的操作修陡。例如我們?cè)谑褂肑DBC操作數(shù)據(jù)庫(kù)時(shí)沧侥,在提交事務(wù)方法后,提示用戶事務(wù)操作完成魄鸦,當(dāng)我們程序執(zhí)行完成直到看到提示后宴杀,就可以認(rèn)定事務(wù)以及正確提交,即使這時(shí)候數(shù)據(jù)庫(kù)出現(xiàn)了問題拾因,也必須要將我們的事務(wù)完全執(zhí)行完成旺罢,否則就會(huì)造成我們看到提示事務(wù)處理完畢斯棒,但是數(shù)據(jù)庫(kù)因?yàn)楣收隙鴽]有執(zhí)行事務(wù)的重大錯(cuò)誤。

2主经、數(shù)據(jù)庫(kù)隔離級(jí)別荣暮,每個(gè)級(jí)別會(huì)引發(fā)什么問題,mysql默認(rèn)是哪個(gè)級(jí)別

? ??????介紹完事務(wù)的四大特性(簡(jiǎn)稱ACID)罩驻,現(xiàn)在重點(diǎn)來說明下事務(wù)的隔離性穗酥,當(dāng)多個(gè)線程都開啟事務(wù)操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)系統(tǒng)要能進(jìn)行隔離操作惠遏,以保證各個(gè)線程獲取數(shù)據(jù)的準(zhǔn)確性砾跃,在介紹數(shù)據(jù)庫(kù)提供的各種隔離級(jí)別之前,我們先看看如果不考慮事務(wù)的隔離性节吮,會(huì)發(fā)生的幾種問題:

1抽高,臟讀

 ????臟讀是指在一個(gè)事務(wù)處理過程里讀取了另一個(gè)未提交的事務(wù)中的數(shù)據(jù)。

 ????當(dāng)一個(gè)事務(wù)正在多次修改某個(gè)數(shù)據(jù)透绩,而在這個(gè)事務(wù)中這多次的修改都還未提交翘骂,這時(shí)一個(gè)并發(fā)的事務(wù)來訪問該數(shù)據(jù),就會(huì)造成兩個(gè)事務(wù)得到的數(shù)據(jù)不一致帚豪。例如:用戶A向用戶B轉(zhuǎn)賬100元碳竟,對(duì)應(yīng)SQL命令如下

????updateaccountsetmoney=money+100wherename=’B’;? (此時(shí)A通知B)

? ? updateaccountsetmoney=money-100wherename=’A’;

 ????當(dāng)只執(zhí)行第一條SQL時(shí),A通知B查看賬戶狸臣,B發(fā)現(xiàn)確實(shí)錢已到賬(此時(shí)即發(fā)生了臟讀)莹桅,而之后無論第二條SQL是否執(zhí)行,只要該事務(wù)不提交烛亦,則所有操作都將回滾诈泼,那么當(dāng)B以后再次查看賬戶時(shí)就會(huì)發(fā)現(xiàn)錢其實(shí)并沒有轉(zhuǎn)。

2煤禽,不可重復(fù)讀

 ????不可重復(fù)讀是指在對(duì)于數(shù)據(jù)庫(kù)中的某個(gè)數(shù)據(jù)铐达,一個(gè)事務(wù)范圍內(nèi)多次查詢卻返回了不同的數(shù)據(jù)值,這是由于在查詢間隔呜师,被另一個(gè)事務(wù)修改并提交了娶桦。

  例如事務(wù)T1在讀取某一數(shù)據(jù)贾节,而事務(wù)T2立馬修改了這個(gè)數(shù)據(jù)并且提交事務(wù)給數(shù)據(jù)庫(kù)汁汗,事務(wù)T1再次讀取該數(shù)據(jù)就得到了不同的結(jié)果,發(fā)送了不可重復(fù)讀栗涂。

  不可重復(fù)讀和臟讀的區(qū)別是知牌,臟讀是某一事務(wù)讀取了另一個(gè)事務(wù)未提交的臟數(shù)據(jù),而不可重復(fù)讀則是讀取了前一事務(wù)提交的數(shù)據(jù)斤程。

  在某些情況下角寸,不可重復(fù)讀并不是問題菩混,比如我們多次查詢某個(gè)數(shù)據(jù)當(dāng)然以最后查詢得到的結(jié)果為主。但在另一些情況下就有可能發(fā)生問題扁藕,例如對(duì)于同一個(gè)數(shù)據(jù)A和B依次查詢就可能不同沮峡,A和B就可能打起來了……

3,虛讀(幻讀)

????幻讀是事務(wù)非獨(dú)立執(zhí)行時(shí)發(fā)生的一種現(xiàn)象亿柑。例如事務(wù)T1對(duì)一個(gè)表中所有的行的某個(gè)數(shù)據(jù)項(xiàng)做了從“1”修改為“2”的操作邢疙,這時(shí)事務(wù)T2又對(duì)這個(gè)表中插入了一行數(shù)據(jù)項(xiàng),而這個(gè)數(shù)據(jù)項(xiàng)的數(shù)值還是為“1”并且提交給數(shù)據(jù)庫(kù)望薄。而操作事務(wù)T1的用戶如果再查看剛剛修改的數(shù)據(jù)疟游,會(huì)發(fā)現(xiàn)還有一行沒有修改,其實(shí)這行是從事務(wù)T2中添加的痕支,就好像產(chǎn)生幻覺一樣颁虐,這就是發(fā)生了幻讀。

  幻讀和不可重復(fù)讀都是讀取了另一條已經(jīng)提交的事務(wù)(這點(diǎn)就臟讀不同)卧须,所不同的是不可重復(fù)讀查詢的都是同一個(gè)數(shù)據(jù)項(xiàng)另绩,而幻讀針對(duì)的是一批數(shù)據(jù)整體(比如數(shù)據(jù)的個(gè)數(shù))。

  現(xiàn)在來看看MySQL數(shù)據(jù)庫(kù)為我們提供的四種隔離級(jí)別:

 』ㄋ弧① Serializable (串行化):可避免臟讀板熊、不可重復(fù)讀、幻讀的發(fā)生察绷。

 「汕② Repeatable read (可重復(fù)讀):可避免臟讀、不可重復(fù)讀的發(fā)生拆撼。

 ∪堇汀③ Read committed (讀已提交):可避免臟讀的發(fā)生。

 ≌⒍取④ Read uncommitted (讀未提交):最低級(jí)別竭贩,任何情況都無法保證。

  以上四種隔離級(jí)別最高的是Serializable級(jí)別莺禁,最低的是Read uncommitted級(jí)別留量,當(dāng)然級(jí)別越高,執(zhí)行效率就越低哟冬。像Serializable這樣的級(jí)別楼熄,就是以鎖表的方式(類似于Java多線程中的鎖)使得其他的線程只能在鎖外等待,所以平時(shí)選用何種隔離級(jí)別應(yīng)該根據(jù)實(shí)際情況浩峡。在MySQL數(shù)據(jù)庫(kù)中默認(rèn)的隔離級(jí)別為Repeatable read (可重復(fù)讀)可岂。

  在MySQL數(shù)據(jù)庫(kù)中,支持上面四種隔離級(jí)別翰灾,默認(rèn)的為Repeatable read (可重復(fù)讀)缕粹;而在Oracle數(shù)據(jù)庫(kù)中稚茅,只支持Serializable (串行化)級(jí)別和Read committed (讀已提交)這兩種級(jí)別,其中默認(rèn)的為Read committed級(jí)別平斩。

  在MySQL數(shù)據(jù)庫(kù)中查看當(dāng)前事務(wù)的隔離級(jí)別:

????????select@@tx_isolation;

????????在MySQL數(shù)據(jù)庫(kù)中設(shè)置事務(wù)的隔離 級(jí)別:

????????set[glogal | session]transactionisolationlevel 隔離級(jí)別名稱;

? ????? settx_isolation=’隔離級(jí)別名稱;’

例1:查看當(dāng)前事務(wù)的隔離級(jí)別:

例2:將事務(wù)的隔離級(jí)別設(shè)置為Read uncommitted級(jí)別:

或:

記籽窍怼:設(shè)置數(shù)據(jù)庫(kù)的隔離級(jí)別一定要是在開啟事務(wù)之前!

如果是使用JDBC對(duì)數(shù)據(jù)庫(kù)的事務(wù)設(shè)置隔離級(jí)別的話绘面,也應(yīng)該是在調(diào)用Connection對(duì)象的setAutoCommit(false)方法之前虹蒋。調(diào)用Connection對(duì)象的setTransactionIsolation(level)即可設(shè)置當(dāng)前鏈接的隔離級(jí)別,至于參數(shù)level飒货,可以使用Connection對(duì)象的字段:

在JDBC中設(shè)置隔離級(jí)別的部分代碼:

后記:隔離級(jí)別的設(shè)置只對(duì)當(dāng)前鏈接有效魄衅。對(duì)于使用MySQL命令窗口而言,一個(gè)窗口就相當(dāng)于一個(gè)鏈接塘辅,當(dāng)前窗口設(shè)置的隔離級(jí)別只對(duì)當(dāng)前窗口中的事務(wù)有效晃虫;對(duì)于JDBC操作數(shù)據(jù)庫(kù)來說,一個(gè)Connection對(duì)象相當(dāng)于一個(gè)鏈接扣墩,而對(duì)于Connection對(duì)象設(shè)置的隔離級(jí)別只對(duì)該Connection對(duì)象有效哲银,與其他鏈接Connection對(duì)象無關(guān)。

3呻惕、MYSQL的兩種存儲(chǔ)引擎區(qū)別(事務(wù)荆责、鎖級(jí)別等等),各自的適用場(chǎng)景

? ??MyISAM MyISAM表是獨(dú)立于操作系統(tǒng)的亚脆,這說明可以輕松地將其從Windows服務(wù)器移植到Linux服務(wù)器做院;每當(dāng)我們建立一個(gè)MyISAM引擎的表時(shí),就會(huì)在本地磁盤上建立三個(gè)文件濒持,文件名就是表明键耕。例如,我建立了一個(gè)MyISAM引擎的tb_Demo表柑营,那么就會(huì)生成以下三個(gè)文件:

????????1.tb_demo.frm屈雄,存儲(chǔ)表定義;?

????????2.tb_demo.MYD官套,存儲(chǔ)數(shù)據(jù)酒奶;?

????????3.tb_demo.MYI,存儲(chǔ)索引奶赔。

????MyISAM表無法處理事務(wù)惋嚎,這就意味著有事務(wù)處理需求的表,不能使用MyISAM存儲(chǔ)引擎纺阔。MyISAM存儲(chǔ)引擎特別適合在以下幾種情況下使用:

????????1.選擇密集型的表瘸彤。MyISAM存儲(chǔ)引擎在篩選大量數(shù)據(jù)時(shí)非常迅速,這是它最突出的優(yōu)點(diǎn)笛钝。?

????????2.插入密集型的表质况。MyISAM的并發(fā)插入特性允許同時(shí)選擇和插入數(shù)據(jù)。例如:MyISAM存儲(chǔ)引擎很適合管理郵件或Web服務(wù)器日志數(shù)據(jù)玻靡。

????(1)特性? ?

????????不支持事務(wù):MyISAM存儲(chǔ)引擎不支持事務(wù)结榄,所以對(duì)事務(wù)有要求的業(yè)務(wù)場(chǎng)景不能使用

????????表級(jí)鎖定:其鎖定機(jī)制是表級(jí)索引,這雖然可以讓鎖定的實(shí)現(xiàn)成本很小但是也同時(shí)大大降低了其并發(fā)性能? ?

????????讀寫互相阻塞:不僅會(huì)在寫入的時(shí)候阻塞讀取囤捻,MyISAM還會(huì)在讀取的時(shí)候阻塞寫入臼朗,但讀本身并不會(huì)阻塞另外的讀? ?

????????只會(huì)緩存索引:MyISAM可以通過key_buffer緩存以大大提高訪問性能減少磁盤IO,但是這個(gè)緩存區(qū)只會(huì)緩存索引蝎土,而不會(huì)緩存數(shù)據(jù)

????(2)適用場(chǎng)景? ?

????????不需要事務(wù)支持(不支持)? 视哑,并發(fā)相對(duì)較低(鎖定機(jī)制問題)?;數(shù)據(jù)修改相對(duì)較少(阻塞問題)誊涯;以讀為主挡毅;數(shù)據(jù)一致性要求不是非常高? ??

? ? (3)最佳實(shí)踐??

????????盡量索引(緩存機(jī)制)? ,調(diào)整讀寫優(yōu)先級(jí)暴构;根據(jù)實(shí)際需求確保重要操作更優(yōu)先跪呈;啟用延遲插入改善大批量寫入性能;盡量順序操作讓insert數(shù)據(jù)都寫入到尾部取逾,減少阻塞耗绿;分解大的操作,降低單個(gè)操作的阻塞時(shí)間砾隅;降低并發(fā)數(shù)误阻,某些高并發(fā)場(chǎng)景通過應(yīng)用來進(jìn)行排隊(duì)機(jī)制;對(duì)于相對(duì)靜態(tài)的數(shù)據(jù)晴埂,充分利用Query Cache可以極大的提高訪問效率堕绩;MyISAM的Count只有在全表掃描的時(shí)候特別高效,帶有其他條件的count都需要進(jìn)行實(shí)際的數(shù)據(jù)訪問? ? ??

?InnoDB

????InnoDB是一個(gè)健壯的事務(wù)型存儲(chǔ)引擎邑时,在以下場(chǎng)合下奴紧,使用InnoDB是最理想的選擇:

? ? ? ? 更新密集的表。InnoDB存儲(chǔ)引擎特別適合處理多重并發(fā)的更新請(qǐng)求晶丘。?

? ? ? ? 事務(wù)黍氮。InnoDB存儲(chǔ)引擎是支持事務(wù)的標(biāo)準(zhǔn)MySQL存儲(chǔ)引擎。?

? ? ? ? 自動(dòng)災(zāi)難恢復(fù)浅浮。與其它存儲(chǔ)引擎不同沫浆,InnoDB表能夠自動(dòng)從災(zāi)難中恢復(fù)。?

? ? ? ? 外鍵約束滚秩。MySQL支持外鍵的存儲(chǔ)引擎只有InnoDB专执。?

? ? ? ? 支持自動(dòng)增加列AUTO_INCREMENT屬性。

????????一般來說郁油,如果需要事務(wù)支持本股,并且有較高的并發(fā)讀取頻率攀痊,InnoDB是不錯(cuò)的選擇。

????(1)特性? ?

????????具有較好的事務(wù)支持:支持4個(gè)事務(wù)隔離級(jí)別拄显,支持多版本讀?

????????行級(jí)鎖定:通過索引實(shí)現(xiàn)苟径,全表掃描仍然會(huì)是表鎖,注意間隙鎖的影響? ?

????????讀寫阻塞與事務(wù)隔離級(jí)別相關(guān)? ?

????????具有非常高效的緩存特性:能緩存索引躬审,也能緩存數(shù)據(jù)

????????整個(gè)表和主鍵以Cluster方式存儲(chǔ)棘街,組成一顆平衡樹? ?

????????所有Secondary Index都會(huì)保存主鍵信息? ??

????(2)適用場(chǎng)景? ?

????????需要事務(wù)支持(具有較好的事務(wù)特性)?;行級(jí)鎖定對(duì)高并發(fā)有很好的適應(yīng)能力承边,但需要確保查詢是通過索引完成遭殉;數(shù)據(jù)更新較為頻繁的場(chǎng)景? ? ;數(shù)據(jù)一致性要求較高?博助;硬件設(shè)備內(nèi)存較大险污,可以利用InnoDB較好的緩存能力來提高內(nèi)存利用率,盡可能減少磁盤 IO? ??

???(3)最佳實(shí)踐? ?

????????主鍵盡可能小翔始,避免給Secondary index帶來過大的空間負(fù)擔(dān)罗心;避免全表掃描,因?yàn)闀?huì)使用表鎖城瞎;盡可能緩存所有的索引和數(shù)據(jù)渤闷,提高響應(yīng)速度;在大批量小插入的時(shí)候脖镀,盡量自己控制事務(wù)而不要使用autocommit自動(dòng)提交飒箭;合理設(shè)置innodb_flush_log_at_trx_commit參數(shù)值,不要過度追求安全性?蜒灰;避免主鍵更新弦蹂,因?yàn)檫@會(huì)帶來大量的數(shù)據(jù)移動(dòng)。

????????主要區(qū)別:

? ? ? ? MyIASM是非事務(wù)安全的强窖,而InnoDB是事務(wù)安全的

????????MyIASM鎖的粒度是表級(jí)的凸椿,而InnoDB支持行級(jí)鎖

????????MyIASM支持全文類型索引,而InnoDB不支持全文索引

????????MyIASM相對(duì)簡(jiǎn)單翅溺,效率上要優(yōu)于InnoDB脑漫,小型應(yīng)用可以考慮使用MyIASM

????????MyIASM表保存成文件形式,跨平臺(tái)使用更加方便

????????應(yīng)用場(chǎng)景:

????????MyIASM管理非事務(wù)表咙崎,提供高速存儲(chǔ)和檢索以及全文搜索能力优幸,如果再應(yīng)用中執(zhí)行大量select操作,應(yīng)該選擇MyIASM

????????InnoDB用于事務(wù)處理褪猛,具有ACID事務(wù)支持等特性网杆,如果在應(yīng)用中執(zhí)行大量insert和update操作,應(yīng)該選擇InnoDB

4、數(shù)據(jù)庫(kù)的優(yōu)化(從sql語(yǔ)句優(yōu)化和索引兩個(gè)部分回答)

? ??????http://blog.csdn.net/yzllz001/article/details/54848513

? ??????https://www.cnblogs.com/zishengY/p/6892345.html

5碳却、B+索引數(shù)據(jù)結(jié)構(gòu)队秩,和B樹的區(qū)別

? ??????https://www.cnblogs.com/George1994/p/7008732.html

6、聚集索引和非聚集索引區(qū)別

? ? ? ? 聚集索引:搜索碼順序連續(xù)追城、物理存儲(chǔ)順序連續(xù)且與抖索碼順序相同刹碾。(聚集索引可以建立在任何鍵上燥撞,但還是主鍵居多座柱,考慮主鍵唯一性帶來的性能;一個(gè)表只能有一個(gè)聚集索引物舒,因?yàn)橐粋€(gè)表的物理順序只有一種情況色洞,所以,對(duì)應(yīng)的聚集索引只能有一個(gè)冠胯。聚集索引類似數(shù)組)

? ? ? ? 非聚集索引:搜索碼順序連續(xù)火诸、物理存儲(chǔ)順序不連續(xù)。(非聚集索引類似鏈表荠察;因?yàn)榉蔷奂饕沁壿嬌系倪B續(xù)置蜀,所以一個(gè)表可以有多個(gè)非聚集索引。)

7悉盆、有哪些鎖(樂觀鎖悲觀鎖)盯荤,select時(shí)怎么加排它鎖

? ? ? ? http://blog.itpub.net/11627468/viewspace-1788399/


????????(1)樂觀鎖:在關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)里,樂觀并發(fā)控制(又名“樂觀鎖”焕盟,Optimistic Concurrency Control秋秤,縮寫“OCC”)是一種并發(fā)控制的方法。它假設(shè)多用戶并發(fā)的事務(wù)在處理時(shí)不會(huì)彼此互相影響脚翘,各事務(wù)能夠在不產(chǎn)生鎖的情況下處理各自影響的那部分?jǐn)?shù)據(jù)灼卢。在提交數(shù)據(jù)更新之前,每個(gè)事務(wù)會(huì)先檢查在該事務(wù)讀取數(shù)據(jù)后来农,有沒有其他事務(wù)又修改了該數(shù)據(jù)鞋真。如果其他事務(wù)有更新的話,正在提交的事務(wù)會(huì)進(jìn)行回滾沃于。

? ? ? ? (2)悲觀鎖:悲觀鎖涩咖,正如其名,它指的是對(duì)數(shù)據(jù)被外界(包括本系統(tǒng)當(dāng)前的其他事務(wù)揽涮,以及來自外部系統(tǒng)的事務(wù)處理)修改持保守態(tài)度(悲觀)抠藕,因此,在整個(gè)數(shù)據(jù)處理過程中蒋困,將數(shù)據(jù)處于鎖定狀態(tài)盾似。 悲觀鎖的實(shí)現(xiàn),往往依靠數(shù)據(jù)庫(kù)提供的鎖機(jī)制 (也只有數(shù)據(jù)庫(kù)層提供的鎖機(jī)制才能真正保證數(shù)據(jù)訪問的排他性,否則零院,即使在本系統(tǒng)中實(shí)現(xiàn)了加鎖機(jī)制溉跃,也無法保證外部系統(tǒng)不會(huì)修改數(shù)據(jù))

????????(3)排他鎖和共享鎖 :在數(shù)據(jù)庫(kù)中有兩種基本的鎖類型:排它鎖(Exclusive Locks,即X鎖)和共享鎖(Share Locks告抄,即S鎖)撰茎。當(dāng)數(shù)據(jù)對(duì)象被加上排它鎖時(shí),其他的事務(wù)不能對(duì)它讀取和修改打洼。加了共享鎖的數(shù)據(jù)對(duì)象可以被其他事務(wù)讀取龄糊,但不能修改。數(shù)據(jù)庫(kù)利用這兩種基本的鎖類型來對(duì)數(shù)據(jù)庫(kù)的事務(wù)進(jìn)行并發(fā)控制募疮。

? ? ? ? (4)表級(jí)鎖和行級(jí)鎖:DML鎖的目的在于保證并發(fā)情況下的數(shù)據(jù)完整性炫惩,主要包括TM鎖和TX鎖,其中TM鎖稱為表級(jí)鎖阿浓,TX鎖稱為事務(wù)鎖或行級(jí)鎖他嚷。當(dāng)Oracle執(zhí)行DML語(yǔ)句時(shí),系統(tǒng)自動(dòng)在所要操作的表上申請(qǐng)TM類型的鎖芭毙。當(dāng)TM鎖獲得后筋蓖,系統(tǒng)再自動(dòng)申請(qǐng)TX類型的鎖,并將實(shí)際鎖定的數(shù)據(jù)行的鎖標(biāo)志位進(jìn)行置位退敦。這樣在事務(wù)加鎖前檢查TX鎖相容性時(shí)就不用再逐行檢查鎖標(biāo)志粘咖,而只需檢查TM鎖模式的相容性即可,大大提高了系統(tǒng)的效率苛聘。TM鎖包括了SS涂炎、SX、S设哗、X等多種模式唱捣,在數(shù)據(jù)庫(kù)中用0-6來表示。不同的SQL操作產(chǎn)生不同類型的TM鎖网梢。

? ? ? ? select ....for update

8震缭、SQL和NoSQL的區(qū)別

? ??????http://blog.csdn.net/xlgen157387/article/details/47908797

? ??????http://blog.csdn.net/han_cui/article/details/60765969

? ??????從數(shù)據(jù)結(jié)構(gòu)出發(fā)對(duì)比關(guān)系型數(shù)據(jù)庫(kù)和文檔型數(shù)據(jù)庫(kù):https://crzidea.com/2016/08/08/relational-database-vs-document-oriented-database-in-data-structure/

9、數(shù)據(jù)庫(kù)三范式战虏,根據(jù)某個(gè)場(chǎng)景設(shè)計(jì)數(shù)據(jù)表(可以通過手繪ER圖)

? ??????https://www.zhihu.com/question/24696366

10拣宰、數(shù)據(jù)庫(kù)的主從復(fù)制

????????http://www.cnblogs.com/exceptioneye/p/5042133.html

11、使用explain優(yōu)化sql和索引

? ??????https://www.cnblogs.com/chenxqNo01/p/6371075.html

? ??????http://blog.csdn.net/zc474235918/article/details/74923614

12烦感、內(nèi)連接與外鏈接

????????http://dataunion.org/11954.html

*1巡社、MVCC機(jī)制

????????http://blog.csdn.net/whoamiyang/article/details/51901888

????????https://www.cnblogs.com/phpper/p/6937650.html

*2、根據(jù)具體場(chǎng)景手趣,說明版本控制機(jī)制

????????http://www.kuqin.com/system-analysis/20120319/319108.html

*3晌该、varchar和char的使用場(chǎng)景

? ??????http://www.jb51.net/article/55366.htm

*4、數(shù)據(jù)庫(kù)死鎖的原因和解決方法

? ??????https://www.cnblogs.com/sivkun/p/7518540.html

Redis

1、redis和Memcach

? ??????http://blog.csdn.net/langzi7758521/article/details/51672028

2朝群、redis隊(duì)列應(yīng)用場(chǎng)景

????????https://www.cnblogs.com/xiaoxi/p/7007695.html

4燕耿、分布式使用場(chǎng)景(儲(chǔ)存session等)

5、發(fā)布/訂閱使用場(chǎng)景

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末姜胖,一起剝皮案震驚了整個(gè)濱河市誉帅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌右莱,老刑警劉巖蚜锨,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異隧出,居然都是意外死亡踏志,警方通過查閱死者的電腦和手機(jī)阀捅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門胀瞪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人饲鄙,你說我怎么就攤上這事凄诞。” “怎么了忍级?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵帆谍,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我轴咱,道長(zhǎng)汛蝙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任朴肺,我火速辦了婚禮窖剑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘戈稿。我一直安慰自己西土,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布鞍盗。 她就那樣靜靜地躺著需了,像睡著了一般。 火紅的嫁衣襯著肌膚如雪般甲。 梳的紋絲不亂的頭發(fā)上肋乍,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音敷存,去河邊找鬼墓造。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的滔岳。 我是一名探鬼主播杠娱,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼谱煤!你這毒婦竟也來了摊求?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤刘离,失蹤者是張志新(化名)和其女友劉穎室叉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體硫惕,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茧痕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恼除。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踪旷。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖豁辉,靈堂內(nèi)的尸體忽然破棺而出令野,到底是詐尸還是另有隱情,我是刑警寧澤徽级,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布气破,位于F島的核電站,受9級(jí)特大地震影響餐抢,放射性物質(zhì)發(fā)生泄漏现使。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一旷痕、第九天 我趴在偏房一處隱蔽的房頂上張望碳锈。 院中可真熱鬧,春花似錦苦蒿、人聲如沸殴胧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)团滥。三九已至,卻和暖如春报强,著一層夾襖步出監(jiān)牢的瞬間灸姊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工秉溉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留力惯,地道東北人碗誉。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像父晶,于是被迫代替她去往敵國(guó)和親哮缺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容