国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

mysql的mvcc詳解

這篇具有很好參考價(jià)值的文章主要介紹了mysql的mvcc詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一 MVCC的作用

1.1 mvcc的作用

1.MVCC(Multiversion Concurrency Control)多版本并發(fā)控制。即通過數(shù)據(jù)行的多個(gè)版本管理來實(shí)現(xiàn)數(shù)據(jù)庫(kù)的并發(fā)控制,使得在InnoDB事務(wù)隔離級(jí)別下執(zhí)行一致性讀操作有了保障。

2.mysql中的InnoDB中實(shí)現(xiàn)了MVCC主要是為了提高數(shù)據(jù)庫(kù)的并發(fā)性能,在無鎖的情況下也能處理讀寫并發(fā),大大提高數(shù)據(jù)庫(kù)的并發(fā)度。

3..MySQl中只有InnoDB支持MVCC,其他存儲(chǔ)引擎不支持

4.為了查詢一些正在被其他事務(wù)更新的值的時(shí)候,能夠查到它們被更新之前的值,這樣做就能在查詢的時(shí)候不必等待更新事務(wù)的提交。

在InnoDB中,會(huì)對(duì)增刪改操作自動(dòng)添加排它鎖,因此兩個(gè)事務(wù)不會(huì)出現(xiàn)臟寫的情況,也就是不會(huì)出現(xiàn)兩個(gè)事務(wù)交叉著對(duì)同一條記錄進(jìn)行修改,必須等待第一個(gè)事務(wù)提交才能進(jìn)行第二個(gè)事務(wù)。

1.2 快照讀與當(dāng)前讀的區(qū)別與聯(lián)系

1.MVCC在InnoDB中的實(shí)現(xiàn)主要是為了提高數(shù)據(jù)庫(kù)的并發(fā)性能,用更好的方式處理讀寫沖突,做到即使有讀寫沖突,也能不加鎖實(shí)現(xiàn)非堵塞并發(fā)讀,這個(gè)讀指的是快照讀而不是當(dāng)前讀。

2.當(dāng)前讀實(shí)質(zhì)上是一種加鎖的操作,是悲觀鎖的體現(xiàn);而MVCC是采用樂觀鎖的一種方式

1.3 快照讀

1.快照讀,顧名思義讀取的是一份快照數(shù)據(jù),所以讀到的并不一定是最新數(shù)據(jù),可能是歷史數(shù)據(jù)。

2.簡(jiǎn)單的select查詢就是快照讀,不加鎖非阻塞讀,降低數(shù)據(jù)庫(kù)的開銷。

3.但是快照讀在隔離級(jí)別是串行化級(jí)別是沒有意義的,因?yàn)榇谢膕ql都是排隊(duì)執(zhí)行的,不存在并發(fā),所以就會(huì)變成當(dāng)前讀。

1.4?當(dāng)前讀

當(dāng)前讀獲取的數(shù)據(jù)是最新數(shù)據(jù),而且在讀取時(shí)不能被其他修改的,所以會(huì)對(duì)讀取的記錄加鎖來控制。

加鎖的SELECT(共享或排它鎖)或者對(duì)數(shù)據(jù)進(jìn)行增刪改操作(自動(dòng)添加排它鎖)都會(huì)進(jìn)行當(dāng)前讀。

select * from ajisun where id > 1 lock in share mode;//?或者select * from ajisun where id >1 for update;

1.5 mvcc可以解決問題

  1. 讀寫之間的堵塞問題,提高事務(wù)的并發(fā)讀寫能力

  2. 降低了死鎖的概率,MVCC采用了樂觀鎖的方式,讀取數(shù)據(jù)的時(shí)候不需要加鎖,對(duì)于寫操作,也只要鎖定必要的行

  3. 解決快照讀問題,當(dāng)查詢數(shù)據(jù)庫(kù)某個(gè)時(shí)間節(jié)點(diǎn)的快照的時(shí)候,只能查看到在這個(gè)節(jié)點(diǎn)之前提交的事務(wù)的結(jié)果而看不到時(shí)間點(diǎn)之后事務(wù)提交的更新結(jié)果

1.6 mvcc面試題:mvcc是怎么實(shí)現(xiàn)的

mvcc 是多版本并發(fā)控制,通過生成記錄的歷史版本解決幻讀問題,并提高數(shù)據(jù)庫(kù)的性能,無鎖實(shí)現(xiàn)讀寫并發(fā)操作。

1.mvcc 的實(shí)現(xiàn)主要是通過三個(gè)隱藏字段,undo log以及readView 實(shí)現(xiàn)的。

2.三個(gè)隱藏字段分別是隱藏主鍵,事務(wù)ID,回滾指針。

3.undo log是各個(gè)事務(wù)修改同一條記錄的時(shí)候生成的歷史記錄,方便回滾,同時(shí)會(huì)生成一條版本鏈。

4.readView是事務(wù)在進(jìn)行快照讀的時(shí)候生成的記錄快照,用于判斷數(shù)據(jù)的可見性。

5.描述readView 可見性判斷規(guī)則。

二? MVCC實(shí)現(xiàn)原理

2.1 原理

? MVCC的實(shí)現(xiàn)依賴于:隱藏字段Undo log、Read View?

2.2 undo log

2.2.1 undo Log的作用

所謂的版本鏈就是在MVCC中,多個(gè)事務(wù)對(duì)同一行記錄進(jìn)行更新會(huì)產(chǎn)生多個(gè)歷史快照,這些記錄保存在Undo Log里,這些undo日志通過回滾指針串聯(lián)在一起。

undo log就是回滾日志,在insert/update/delete變更操作的時(shí)候生成的記錄方便回滾。

當(dāng)進(jìn)行insert操作的時(shí)候,產(chǎn)生的undo log只有在事務(wù)回滾的時(shí)候需要,如果不回滾在事務(wù)提交之后就會(huì)被刪除。

當(dāng)進(jìn)行update和delete的時(shí)候,產(chǎn)生的undo log不僅僅在事務(wù)回滾的時(shí)候需要,在快照讀的時(shí)候也是需要的,所以不會(huì)立即刪除,只有等不再用到這個(gè)日志的時(shí)候才會(huì)被mysql purge線程統(tǒng)一處理掉(delete操作也只是打一個(gè)刪除標(biāo)記,并不是真正的刪除)。

2.2.2?undo Log的組成

? undo log的版本鏈,對(duì)于使用InnoDB存儲(chǔ)引擎的表來說,它的聚簇記錄中包含兩個(gè)必要的索引列:

1.trx_id:每次事務(wù)對(duì)聚簇記錄進(jìn)行修改的時(shí)候,就會(huì)將該事務(wù)的id復(fù)制給trx_id隱藏列

2.roll_pointer:每次對(duì)每條聚簇索引進(jìn)行改動(dòng)的時(shí)候,都會(huì)將舊的版本信息寫入undo log中,通過回滾指針就能找到記錄修改前的信息。

2.2.3?undo Log的案例

1.假設(shè)兩個(gè)事務(wù)id分別為10、20的事務(wù)分別對(duì)這條記錄進(jìn)行Update操作。

mysql的mvcc詳解,mysql數(shù)據(jù)庫(kù),mysql,數(shù)據(jù)庫(kù)

2.每次對(duì)記錄進(jìn)行改動(dòng),都會(huì)記錄一條undo log,每個(gè)undo log都包含創(chuàng)建它的事務(wù)id,每條undo log都會(huì)有一個(gè)roll pointerINSERT操作不會(huì)有,因?yàn)椴迦霙]有更新的版本),這些undo log通過roll pointer連接起來,串成一個(gè)鏈表,這個(gè)鏈表就成為undo log 版本鏈。

3.如下圖:

mysql的mvcc詳解,mysql數(shù)據(jù)庫(kù),mysql,數(shù)據(jù)庫(kù)

2.3?隱藏字段

除了我們正常業(yè)務(wù)涉及的字段外,InnoDB在內(nèi)部向數(shù)據(jù)庫(kù)表中添加三個(gè)隱藏字段:

1.DB_TRX_ID:6-byte的事務(wù)ID。插入或更新行的最后一個(gè)事務(wù)的事務(wù)ID

2.DB_ROLL_PTR:7-byte的回滾指針。就是指向?qū)?yīng)某行記錄的上一個(gè)版本,在undo log中使用。

3.DB_ROW_ID:6-byte的隱藏主鍵。如果數(shù)據(jù)表中沒有主鍵,那么InnoDB會(huì)自動(dòng)生成單調(diào)遞增的隱藏主鍵(表中有主鍵或者非NULL的UNIQUE鍵時(shí)都不會(huì)包含 DB_ROW_ID列)。

如上面的表沒有設(shè)計(jì)primary key,其中id/name/city是我們的業(yè)務(wù)字段,那么加上隱藏字段應(yīng)該如下

?mysql的mvcc詳解,mysql數(shù)據(jù)庫(kù),mysql,數(shù)據(jù)庫(kù)

2.4? ReadView

2.4.1 ReadView的作用

ReadView 是事務(wù)快照讀的時(shí)候產(chǎn)生的數(shù)據(jù)讀視圖,在該事務(wù)執(zhí)行快照讀的那一刻,會(huì)生成一個(gè)數(shù)據(jù)系統(tǒng)當(dāng)前的快照,記錄并維護(hù)系統(tǒng)當(dāng)前活躍事務(wù)的id,事務(wù)的id值是遞增的。

Read View就是事務(wù)在使用MVCC機(jī)制在進(jìn)行快照讀操作時(shí)產(chǎn)生的快照,ReadView 的最大作用就是判斷數(shù)據(jù)的可見性,當(dāng)某個(gè)事務(wù)執(zhí)行快照讀的時(shí)候,會(huì)對(duì)此記錄創(chuàng)建一個(gè)ReadView 的視圖,在整個(gè)事務(wù)期間根據(jù)某些條件判斷該事務(wù)能夠看到的版本鏈上的哪條歷史數(shù)據(jù)。

2.4.2? ReadView的組成

  1. creator_id:創(chuàng)建這個(gè)Read View的事務(wù)id

  2. trx_ids:表示創(chuàng)建這個(gè)Read View的時(shí)候正在活躍的事務(wù)id列表

  3. up_limit_id:活躍的事務(wù)中最小的id

  4. low_limit_id:表示生成low_limit_id時(shí)系統(tǒng)應(yīng)該分配給下一個(gè)事務(wù)的id值,low_limit_id是系統(tǒng)最大的事務(wù)id(而不是活躍的最大事務(wù)id)

***low_limit_id并不是trx_ids的最大值而是系統(tǒng)能夠分配的事務(wù)id最大值,事務(wù)id是遞增分配的,并且只有事務(wù)在進(jìn)行增刪改操作的時(shí)候才會(huì)分配事務(wù)ID。比如現(xiàn)在有1 2 5三個(gè)事務(wù),那么id為5的事務(wù)提交后,一個(gè)新事務(wù)在生成ReadView的時(shí)候,trx_ids就包括1 2,up_limit_id就是1,low_limit_id就是6

mysql的mvcc詳解,mysql數(shù)據(jù)庫(kù),mysql,數(shù)據(jù)庫(kù)

此時(shí)如果有事務(wù)創(chuàng)建Read View,則

  • trx_ids=[trx2, trx3, trx5, trx8]
  • up_limit_id=trx2
  • low_limit_id=trx8+1

2.4.3? ReadView的判斷流程

當(dāng)查詢一條數(shù)據(jù)的時(shí)候,系統(tǒng)

  1. 首先獲取查詢操作的事務(wù)的版本號(hào)
  2. 獲取當(dāng)前系統(tǒng)的ReadView
  3. 將查詢到的數(shù)據(jù)與ReadView中的事務(wù)版本號(hào)進(jìn)行比較
  4. 如果不符合ReadView的規(guī)則,則通過回滾指針形成的Undo Log版本鏈undo log中獲取符合規(guī)則的歷史快照
  5. 返回符合規(guī)則的數(shù)據(jù)

快照記錄創(chuàng)建這個(gè)Read View的事務(wù)id、活躍的事務(wù)中最小的id、系統(tǒng)最大的事務(wù)id,并且InnoDB會(huì)為每個(gè)事務(wù)構(gòu)建了一個(gè)數(shù)組,用來記錄并維護(hù)系統(tǒng)當(dāng)前活躍事務(wù)的ID(活躍指的是啟動(dòng)了還沒有提交),等到訪問某條記錄的時(shí)候,就可以根據(jù)上面記錄的內(nèi)容判斷記錄版本對(duì)當(dāng)前事務(wù)可不可見

1.如果Read Viewcreator_id當(dāng)前事務(wù)的id相同,則意味著當(dāng)前事務(wù)在訪問它修改過的id,所以該記錄版本可以被事務(wù)訪問

2.如果當(dāng)前訪問版本記錄的trx_id小于Read Viewup_limit_id,則意味著修改該數(shù)據(jù)版本的事務(wù)已經(jīng)提交,所以該版本的記錄可以被當(dāng)前事務(wù)訪問

3.如果當(dāng)前訪問版本記錄的trx_id大于等于Read Viewlow_limit_id,則意味著創(chuàng)建該數(shù)據(jù)版本的事務(wù)是在ReadView生成之后才出現(xiàn)的,因此當(dāng)前事務(wù)不能訪問

4.如果當(dāng)前訪問版本記錄的trx_idRead Viewup_limit_idlow_limit_id之間,則需要判斷trx_id是否在Read Viewtrx_ids活躍事務(wù)列表中,如果在則說明事務(wù)還沒有提交當(dāng)前事務(wù)不能訪問,否則可以訪問

5.如果某個(gè)版本對(duì)當(dāng)前事務(wù)不可見,那么順著版本鏈找到下個(gè)版本記錄,然后繼續(xù)上面的對(duì)比規(guī)則,直到找到版本鏈中的最后一個(gè)版本,如果最后一個(gè)版本都不可見,那么該條記錄對(duì)此事務(wù)完全不可見,也就查不到這個(gè)記錄。

2.5 不同隔離級(jí)別使用Readview

1.讀未提交:能夠讀取未提交的事務(wù)修改的數(shù)據(jù),所以直接讀取最新的記錄就可以,不必使用MVCC

2.讀已提交:不能讀取未提交的事務(wù)修改的數(shù)據(jù),并且不能進(jìn)行重復(fù)讀取,事務(wù)中,每次快照讀都會(huì)新生成一個(gè)快照和ReadView,這就是我們?cè)赗C級(jí)別下的事務(wù)中可以看到別的事務(wù)提交的更新的原因。

3.可重復(fù)讀:不能讀取未提交的事務(wù)修改的數(shù)據(jù),并且能進(jìn)行重復(fù)讀取,所以只在第一次查詢的時(shí)候獲取一次ReadView,之后查詢都只查看已經(jīng)生成的ReadView副本

4.可串行化:InnoDB規(guī)定使用加鎖的方式來訪問記錄,通過加鎖的方式讓所有sql都串行化執(zhí)行了,也是讀最新的,不存在快照讀ReadView。

https://www.cnblogs.com/tod4/p/17384677.html

MySQL進(jìn)階系列:多版本并發(fā)控制mvcc的實(shí)現(xiàn)

2.6? mvcc解決幻讀問題

MySQL在Repeatable Read隔離級(jí)別下是可以解決幻讀問題的,解決的方案有兩種:

1.使用MVCC進(jìn)行快照讀,寫使用臨鍵鎖。添加的臨鍵鎖不會(huì)影響快照讀,只會(huì)影響到想要獲取鎖的讀操作

2.讀寫加鎖,也就是使用可串行化的隔離模式。

2.6.1 mvcc解決幻讀

讀操作利用多版本并發(fā)控制MVCC),寫操作加鎖。

MVCC就是生成一個(gè)ReadView,通過ReadView能夠找到符合條件的記錄版本(歷史版本由undo log提供查詢),查詢語句執(zhí)行查詢已經(jīng)提交的事務(wù)做出的更改,對(duì)于沒由提交的事務(wù)和ReadView創(chuàng)建之后的事務(wù)做出的更改是看不到的。而寫操作肯定是針對(duì)的最新版本的記錄,因此讀記錄的歷史版本和寫操作的最新記錄版本并不會(huì)沖突,也就是采用MVCC時(shí),讀寫操作并不會(huì)沖突。

普通的SELECT語句在READ COMMITTED 和 REPEATABLE READ隔離級(jí)別下的讀操作就是利用MVCC進(jìn)行的讀

1.READ COMMITTED:由于不會(huì)讀取沒有提交的事務(wù)修改的數(shù)據(jù)版本,因此避免了臟讀問題

2.REPEATABLE READ:由于不會(huì)讀取Read View創(chuàng)建之后的事務(wù)更改的數(shù)據(jù)(一個(gè)事務(wù)只有在第一次執(zhí)行SELECT語句才會(huì)生成一個(gè)Read View,之后的SELECT語句都在復(fù)用),因此避免了可重復(fù)讀和幻讀問題。

2.6.2 通過加鎖的方式

讀、寫操作都采用加鎖的方式

在一些業(yè)務(wù)場(chǎng)景中,不允許讀取數(shù)據(jù)的歷史版本,即每次都需要去讀取磁盤中最新的數(shù)據(jù),這樣也就意味著讀操作也需要和寫操作一樣排隊(duì)執(zhí)行。

如此一來,臟讀不可重復(fù)讀問題都得到了解決,因?yàn)樽x操作和寫操作的串行執(zhí)行,不會(huì)出現(xiàn)一個(gè)事務(wù)讀取另一個(gè)未提交事務(wù)的數(shù)據(jù)以及一個(gè)事務(wù)讀取過程中另一個(gè)事務(wù)修改數(shù)據(jù)提交導(dǎo)致前一個(gè)事務(wù)前后讀取數(shù)據(jù)不一致的情況(第二個(gè)事務(wù)根本無法開始)。

****但是,幻讀問題有些尷尬,試想一個(gè)事務(wù)在進(jìn)行讀操作,因此給表中的一定范圍內(nèi)的數(shù)據(jù)加鎖,但是另一個(gè)事務(wù)要寫的這個(gè)幻影數(shù)據(jù)可不在這個(gè)范圍里面,也就是兩個(gè)讀寫操作并不會(huì)沖突,仍然會(huì)出現(xiàn)幻讀問題,解決這一個(gè)問題的辦法就是寫操作使用臨鍵鎖文章來源地址http://www.zghlxwxcb.cn/news/detail-729227.html

到了這里,關(guān)于mysql的mvcc詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MySQL數(shù)據(jù)庫(kù)詳解

    MySQL數(shù)據(jù)庫(kù)詳解

    MySQL是一個(gè)廣泛使用的開源關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)。它使用了結(jié)構(gòu)化查詢語言(SQL)來管理存儲(chǔ)在其系統(tǒng)中的數(shù)據(jù)。SQL是一種用于插入、更新、刪除和檢索數(shù)據(jù)庫(kù)中數(shù)據(jù)的標(biāo)準(zhǔn)語言。 MySQL的主要特性包括: 性能優(yōu)化:MySQL具有優(yōu)秀的性能、可靠性和可擴(kuò)展性,可以處理大

    2024年02月16日
    瀏覽(20)
  • 【數(shù)據(jù)庫(kù)】 mysql用戶授權(quán)詳解

    【數(shù)據(jù)庫(kù)】 mysql用戶授權(quán)詳解

    目錄 MySQL用戶授權(quán) 一,密碼策略 1,查看臨時(shí)密碼 2,查看數(shù)據(jù)庫(kù)當(dāng)前密碼策略: 二, 用戶授權(quán)和撤銷授權(quán) 1、創(chuàng)建用戶 2,刪除用戶 3,授權(quán)和回收權(quán)限 mysql剛安裝時(shí),臨時(shí)密碼會(huì)存儲(chǔ)在 /var/log/mysqld.log 1,查看臨時(shí)密碼 方法一:直接給出密碼 ? 方法二:查到的語句的最后為

    2024年02月11日
    瀏覽(95)
  • MySQL數(shù)據(jù)庫(kù)之事物(詳解)

    MySQL數(shù)據(jù)庫(kù)之事物(詳解)

    目錄 一.事物的概念 二.為什么需要事物 三.事物的執(zhí)行機(jī)制 四.MySQL的事物基本使用 五.事物的ACID特性 5.1一致性 六 事物的隔離級(jí)別 6.1事物隔離的原因及解決思路 6.2MySQL事物的隔離級(jí)別 ??個(gè)人主頁(yè):tq02的博客_CSDN博客-C語言,Java,Java數(shù)據(jù)結(jié)構(gòu)領(lǐng)域博主 ?? 本文由 tq02 原創(chuàng),首發(fā)

    2024年02月16日
    瀏覽(18)
  • Node.js程序如何訪問MySQL數(shù)據(jù)庫(kù)呢?Sequelize操作MySQL數(shù)據(jù)庫(kù)詳解

    當(dāng)我們安裝好MySQL后,Node.js程序如何訪問MySQL數(shù)據(jù)庫(kù)呢? 訪問MySQL數(shù)據(jù)庫(kù)只有一種方法,就是通過網(wǎng)絡(luò)發(fā)送SQL命令,然后,MySQL服務(wù)器執(zhí)行后返回結(jié)果。 我們可以在命令行窗口輸入mysql -u root -p,然后輸入root口令后,就連接到了MySQL服務(wù)器。因?yàn)闆]有指定–host參數(shù),所以我們連

    2023年04月08日
    瀏覽(30)
  • Docker部署Mysql數(shù)據(jù)庫(kù)詳解

    Docker部署Mysql數(shù)據(jù)庫(kù)詳解

    目錄 ? 1. Docker部署Mysql 1.1 Mysql容器 1.1.1 創(chuàng)建Mysql容器 1.1.2 進(jìn)入Mysql容器并登錄Mysql 1.1.3 持久化數(shù)據(jù) ?1.2 遠(yuǎn)程登錄Mysql 1.2.1 修改root加密方式 1.2.2?在容器啟動(dòng)時(shí)配置加密方式為mysql_native_password ?1.3 Mysql編碼 1.3.1 Mysql編碼問題 ?1.3.2 Mysql編碼問題解決辦法 送書活動(dòng) ? Docker是一種

    2024年02月13日
    瀏覽(20)
  • 玩轉(zhuǎn)MYSQL數(shù)據(jù)庫(kù)之--視圖詳解

    玩轉(zhuǎn)MYSQL數(shù)據(jù)庫(kù)之--視圖詳解

    從今天開始本系列文章就帶各位小伙伴學(xué)習(xí)數(shù)據(jù)庫(kù)技術(shù)。 數(shù)據(jù)庫(kù)技術(shù)是Java開發(fā)中必不可少的一部分知識(shí)內(nèi)容。也是非常重要的技術(shù)。本系列教程由淺入深,?全面講解數(shù)據(jù)庫(kù)體系。?非常適合零基礎(chǔ)的小伙伴來學(xué)習(xí)。 全文大約 【1297】字 ,不說廢話,只講可以讓你學(xué)到技術(shù)、

    2024年02月05日
    瀏覽(27)
  • 【數(shù)據(jù)庫(kù)】MySQL數(shù)據(jù)約束和表關(guān)系詳解

    【數(shù)據(jù)庫(kù)】MySQL數(shù)據(jù)約束和表關(guān)系詳解

    目錄 1.數(shù)據(jù)庫(kù)約束 1.1約束類型 1.2NULL約束 1.3UNIQUE:唯一約束 1.4DEFAULT:默認(rèn)值約束 1.5PRIMARY:主鍵約束 1.6FOREIGH KEY:外鍵約束 2.表的關(guān)系 2.1一對(duì)一 2.2一對(duì)多 2.3多對(duì)多 數(shù)據(jù)庫(kù)中的數(shù)據(jù)保存在數(shù)據(jù)表中,在表中為了更加準(zhǔn)確的存儲(chǔ)數(shù)據(jù),保證數(shù)據(jù)的正確有效,可以在創(chuàng)建表的時(shí)候

    2024年02月04日
    瀏覽(21)
  • MySQL 數(shù)據(jù)庫(kù)導(dǎo)入命令 SOURCE 詳解

    在 MySQL 數(shù)據(jù)庫(kù)中,可以使用 SOURCE 命令來執(zhí)行 SQL 腳本文件,并將其內(nèi)容導(dǎo)入到當(dāng)前數(shù)據(jù)庫(kù)中。這是一個(gè)非常有用的命令,特別是當(dāng)需要導(dǎo)入大量數(shù)據(jù)或者執(zhí)行復(fù)雜的數(shù)據(jù)庫(kù)操作時(shí)。本文將詳細(xì)介紹 SOURCE 命令的使用方法,并提供相應(yīng)的源代碼示例。 使用 SOURCE 命令導(dǎo)入 SQL 腳

    2024年02月03日
    瀏覽(31)
  • 使用C#連接MySQL數(shù)據(jù)庫(kù)(詳解)

    使用C#連接MySQL數(shù)據(jù)庫(kù)(詳解)

    ?前言? 本片文章,主要在于C#連接MySQL數(shù)據(jù)庫(kù),由于這之間無法建立直接聯(lián)系,這時(shí)候就涉及到了第三方連接工具.NET,以此來建立C#與MySQL數(shù)據(jù)庫(kù)的連接 ??歡迎點(diǎn)贊 ?? 收藏 ?留言評(píng)論 ??私信必回喲?? ??博主將持續(xù)更新學(xué)習(xí)記錄收獲,友友們有任何問題可以在評(píng)論區(qū)留

    2024年02月05日
    瀏覽(40)
  • MySQL數(shù)據(jù)庫(kù)——MySQL字符集和校對(duì)規(guī)則詳解

    MySQL數(shù)據(jù)庫(kù)——MySQL字符集和校對(duì)規(guī)則詳解

    在講解字符集和校對(duì)規(guī)則之前,我們先來簡(jiǎn)單了解一下字符、字符集和字符編碼。 字符(Character) 是計(jì)算機(jī)中字母、數(shù)字、符號(hào)的統(tǒng)稱,一個(gè)字符可以是一個(gè)中文漢字、一個(gè)英文字母、一個(gè)阿拉伯?dāng)?shù)字、一個(gè)標(biāo)點(diǎn)符號(hào)等。 計(jì)算機(jī)是以二進(jìn)制的形式來存儲(chǔ)數(shù)據(jù)的。平時(shí)我們?cè)?/p>

    2024年02月05日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包