黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 職業(yè)指南 這些一定要會(huì)的mysql基礎(chǔ)面試題

這些一定要會(huì)的mysql基礎(chǔ)面試題

更新時(shí)間:2022-12-26 16:27:08 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1258次

1. mysql有哪幾種log

重做日志(redo log)、回滾日志(undo log)、二進(jìn)制日志(binlog)、錯(cuò)誤日志(errorlog)、慢查詢?nèi)罩?slow query log)、一般查詢?nèi)罩?general log),中繼日志(relay log)

錯(cuò)誤日志:記錄出錯(cuò)信息,也記錄一些警告信息或者正確的信息。

查詢?nèi)罩荆河涗浰袑?duì)數(shù)據(jù)庫(kù)請(qǐng)求的信息,不論這些請(qǐng)求是否得到了正確的執(zhí)行。

慢查詢?nèi)罩荆涸O(shè)置一個(gè)閾值,將運(yùn)行時(shí)間超過(guò)該值的所有SQL語(yǔ)句都記錄到慢查詢的日志文件中。

二進(jìn)制日志:記錄對(duì)數(shù)據(jù)庫(kù)執(zhí)行更改的所有操作。

中繼日志:中繼日志也是二進(jìn)制日志,用來(lái)給slave 庫(kù)恢復(fù)

事務(wù)日志:重做日志redo和回滾日志undo

2. MySQL的復(fù)制原理以及流程

  • 主:binlog線程——記錄下所有改變了數(shù)據(jù)庫(kù)數(shù)據(jù)的語(yǔ)句,放進(jìn)master上的binlog中。
  • 從:io線程——在使用start slave 之后,負(fù)責(zé)從master上拉取 binlog 內(nèi)容,放進(jìn) 自己的relay log中。
  • 從:sql執(zhí)行線程——執(zhí)行relay log中的語(yǔ)句。

3. 事物的4種隔離級(jí)別

隔離強(qiáng)度逐漸增強(qiáng),性能逐漸變差。

  • 讀未提交(RU) READ UNCOMMITTED
  • 讀已提交(RC) READ COMMITT
  • 可重復(fù)讀(RR) REPEATABLE READ
  • 串行化 SERIALIZABLE

事務(wù)具有原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)四個(gè)特性,簡(jiǎn)稱 ACID,缺一不可。

4. 相關(guān)概念

臟讀

臟讀指的是讀到了其他事務(wù)未提交的數(shù)據(jù),未提交意味著這些數(shù)據(jù)可能會(huì)回滾,也就是可能最終不會(huì)存到數(shù)據(jù)庫(kù)中,也就是不存在的數(shù)據(jù)。讀到了并一定最終存在的數(shù)據(jù),這就是臟讀。

可重復(fù)讀

可重復(fù)讀指的是在一個(gè)事務(wù)內(nèi),最開(kāi)始讀到的數(shù)據(jù)和事務(wù)結(jié)束前的任意時(shí)刻讀到的同一批數(shù)據(jù)都是一致的。通常針對(duì)數(shù)據(jù)更新(UPDATE)操作。

不可重復(fù)讀

對(duì)比可重復(fù)讀,不可重復(fù)讀指的是在同一事務(wù)內(nèi),不同的時(shí)刻讀到的同一批數(shù)據(jù)可能是不一樣的,可能會(huì)受到其他事務(wù)的影響,比如其他事務(wù)改了這批數(shù)據(jù)并提交了。通常針對(duì)數(shù)據(jù)更新(UPDATE)操作。

幻讀

幻讀是針對(duì)數(shù)據(jù)插入(INSERT)操作來(lái)說(shuō)的。假設(shè)事務(wù) A 對(duì)某些行的內(nèi)容作了更改,但是還未提交,此時(shí)事務(wù) B 插入了與事務(wù) A 更改前的記錄相同的記錄行,并且在事務(wù) A 提交之前先提交了,而這時(shí),在事務(wù) A 中查詢,會(huì)發(fā)現(xiàn)好像剛剛的更改對(duì)于某些數(shù)據(jù)未起作用,但其實(shí)是事務(wù) B 剛插入進(jìn)來(lái)的,讓用戶感覺(jué)很魔幻,感覺(jué)出現(xiàn)了幻覺(jué),這就叫幻讀。

5. MySQL數(shù)據(jù)庫(kù)幾個(gè)基本的索引類型

普通索引、唯一索引、主鍵索引、全文索引

6. drop、delete與truncate的區(qū)

SQL中的drop、delete、truncate都表示刪除,但是三者有一些差別

1、delete和truncate只刪除表的數(shù)據(jù)不刪除表的結(jié)構(gòu)

2、速度,一般來(lái)說(shuō): drop> truncate >delete

3、delete語(yǔ)句是dml,這個(gè)操作會(huì)放到rollback segement中,事務(wù)提交之后才生效;

4、如果有相應(yīng)的trigger,執(zhí)行的時(shí)候?qū)⒈挥|發(fā). truncate,drop是ddl, 操作立即生效,原數(shù)據(jù)不放到rollback segment中,不能回滾. 操作不觸發(fā)trigger.

7. 數(shù)據(jù)庫(kù)的樂(lè)觀鎖和悲觀鎖是什么?

悲觀鎖的特點(diǎn)是先獲取鎖,再進(jìn)行業(yè)務(wù)操作,即 “悲觀” 的認(rèn)為獲取鎖是非常有可能失敗的,因此要先確保獲取鎖成功再進(jìn)行業(yè)務(wù)操作。通常所說(shuō)的 “一鎖二查三更新” 即指的是使用悲觀鎖。

通常來(lái)講在數(shù)據(jù)庫(kù)上的悲觀鎖需要數(shù)據(jù)庫(kù)本身提供支持,即通過(guò)常用的 select … for update 操作來(lái)實(shí)現(xiàn)悲觀鎖。 當(dāng)數(shù)據(jù)庫(kù)執(zhí)行 select for update 時(shí)會(huì)獲取被 select 中的數(shù)據(jù)行的行鎖,因此其他并發(fā)執(zhí)行的 select for update 如果試圖選中同一行則會(huì)發(fā)生排斥(需要等待行鎖被釋放),因此達(dá)到鎖的效果。select for update 獲取的行鎖會(huì)在當(dāng)前事務(wù)結(jié)束時(shí)自動(dòng)釋放,因此必須在事務(wù)中使用。

mysql 還有個(gè)問(wèn)題是 select… for update 語(yǔ)句執(zhí)行中,如果數(shù)據(jù)表沒(méi)有添加索引或主鍵,所有掃描過(guò)的行都會(huì)被鎖上,這一點(diǎn)很容易造成問(wèn)題。因此如果在 mysql 中用悲觀鎖務(wù)必要確定走了索引,而不是全表掃描。

樂(lè)觀鎖的特點(diǎn)先進(jìn)行業(yè)務(wù)操作,不到萬(wàn)不得已不去拿鎖。即“樂(lè)觀”的認(rèn)為拿鎖多半是會(huì)成功的,因此在進(jìn)行完業(yè)務(wù)操作需要實(shí)際更新數(shù)據(jù)的最后一步再去拿一下鎖就好。

樂(lè)觀鎖在數(shù)據(jù)庫(kù)上的實(shí)現(xiàn)完全是邏輯的,不需要數(shù)據(jù)庫(kù)提供特殊的支持。一般的做法是在需要鎖的數(shù)據(jù)上增加一個(gè)版本號(hào),或者時(shí)間戳。

樂(lè)觀鎖的兩種實(shí)現(xiàn)方式:

  • 使用數(shù)據(jù)版本(Version)記錄機(jī)制實(shí)現(xiàn),這是樂(lè)觀鎖最常用的一種實(shí)現(xiàn)方式。何謂數(shù)據(jù)版本?即為數(shù)據(jù)增加一個(gè)版本標(biāo)識(shí),一般是通過(guò)為數(shù)據(jù)庫(kù)表增加一個(gè)數(shù)字類型的 “version” 字段來(lái)實(shí)現(xiàn)。當(dāng)讀取數(shù)據(jù)時(shí),將 version 字段的值一同讀出,數(shù)據(jù)每更新一次,對(duì)此 version 值加一。當(dāng)我們提交更新的時(shí)候,判斷數(shù)據(jù)庫(kù)表對(duì)應(yīng)記錄的當(dāng)前版本信息與第一次取出來(lái)的 version 值進(jìn)行比對(duì),如果數(shù)據(jù)庫(kù)表當(dāng)前版本號(hào)與第一次取出來(lái)的 version 值相等,則予以更新,否則認(rèn)為是過(guò)期數(shù)據(jù)。
  • 樂(lè)觀鎖定的第二種實(shí)現(xiàn)方式和第一種差不多,同樣是在需要樂(lè)觀鎖控制的table中增加一個(gè)字段,名稱無(wú)所謂,字段類型使用時(shí)間戳(timestamp),和上面的 version 類似,也是在更新提交的時(shí)候檢查當(dāng)前數(shù)據(jù)庫(kù)中數(shù)據(jù)的時(shí)間戳和自己更新前取到的時(shí)間戳進(jìn)行對(duì)比,如果一致則 OK,否則就是版本沖突。

以上就是“這些一定要會(huì)的mysql基礎(chǔ)面試題”,你能回答上來(lái)嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。 

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 又黄又爽一线毛片免费观看 | 成人免费一级在线播放 | 高清中文字幕在线 | 国产亚洲一区二区精品 | 日韩一级特黄 | 视频网站入口在线看 | 国产亚洲一区二区麻豆 | 在线观看成人小视频 | 色综合成人网 | 视频国产在线 | 久久亚洲综合色 | 日韩高清在线二区 | 成人a级特黄毛片 | 久久免费视频8 | 国产成人a∨麻豆精品 | 久青草视频在线观看 | 国产特级全黄一级毛片不卡 | 欧美不卡一区二区三区 | 夜夜爽一区二区三区精品 | 欧美乱人伦视频 | 毛片动态 | 色干干 | 日本天堂免费观看 | 欧美精品xxxⅹ欧美 欧美经典成人在观看线视频 | 一区二区三区亚洲 | 日本精品a在线 | 日本午夜片成年www 日本午夜视频在线 | 国产禁女女网站免费看 | www.男插女b免费视频 | 午夜激情福利在线 | 99热热热| 天天碰天天摸 | 黄网站在线免费 | 男女交性过程视频无遮挡在线 | 亚洲一区二区三区在线免费观看 | 九九久久亚洲综合久久久 | 99热视热频这里只有精品 | 中文字幕美日韩在线高清 | 一级视频在线播放 | www.色播.com| 在线三级网 |