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

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

這些一定要會的mysql基礎面試題

更新時間:2022-12-26 16:27:08 來源:動力節(jié)點 瀏覽1371次

1. mysql有哪幾種log

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

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

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

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

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

中繼日志:中繼日志也是二進制日志,用來給slave 庫恢復

事務日志:重做日志redo和回滾日志undo

2. MySQL的復制原理以及流程

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

3. 事物的4種隔離級別

隔離強度逐漸增強,性能逐漸變差。

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

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

4. 相關概念

臟讀

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

可重復讀

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

不可重復讀

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

幻讀

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

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

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

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

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

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

2、速度,一般來說: drop> truncate >delete

3、delete語句是dml,這個操作會放到rollback segement中,事務提交之后才生效;

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

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

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

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

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

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

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

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

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

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

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久精品视频一区二区三区 | 亚洲视频一区二区 | 偷偷操网站 | 特级毛片免费播放 | 中文字幕在线一区 | 国产精品亚洲欧美日韩一区在线 | 国产精品婷婷久青青原 | 国产日韩欧美二区 | 亚洲福利视频一区二区三区 | 高清国产在线 | 一级淫片免费看 | 一级二级毛片 | 国产精品成人扳一级aa毛片 | 欧美日韩国产中文字幕 | 男人的影院 | 久久精品店 | 欧美一欧美一区二三区性 | 日韩一区二区三区精品 | 久爱www成人网免费视频 | 亚洲精品国产精品乱码不97 | 日日夜夜欧美 | 二级片免费看 | 成年女人视频免费观看一 | 夜色私人影院永久入口 | 国产精品成人观看视频免费 | 国产精品九九免费视频 | 国产一级做a爱免费视频 | 全免费午夜一级毛片真人 | 六月丁香婷婷激情国产 | 狠狠热精品免费观看 | 伊人国产在线 | 毛片站| 中文字幕第66页永久乱码 | 久草手机视频 | 一级大片免费观看 | 久久精品国产精品亚洲 | 四虎影视国产精品婷婷 | 99热日韩| 免费播放欧美毛片 | 亚洲国产精品一区二区九九 | 一a一级片 |