欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    層按順序執行 SQL 的步驟為:

    索引相關3、MySQL 使用索引的原因?

    根本原因

    擴展

    4、索引的三種常見底層數據結構以及優缺點

    三種常見的索引底層數據結構:分別是哈希表、有序數組和搜索樹。

    5、索引的常見類型以及它是如何發揮作用的?

    根據葉子節點的內容,索引類型分為主鍵索引和非主鍵索引。

    6、 和 實現 B 樹索引方式的區別是什么?7、 為什么設計 B+ 樹索引?

    兩個考慮因素:

    為什么選擇 B+ 樹:

    8、什么是覆蓋索引和索引下推?

    覆蓋索引:

    索引下推:

    9、哪些操作會導致索引失效?10、字符串加索引日志相關11、MySQL 的 是什么?12、MySQL 是如何判斷一行掃描數的?13、MySQL 的 redo log 和 區別?

    14、為什么需要 redo log?15、為什么 redo log 具有 crash-safe 的能力,是 無法替代的?

    第一點:redo log 可確保 判斷哪些數據已經刷盤,哪些數據還沒有

    第二點:如果 redo log 寫入失敗,說明此次操作失敗,事務也不可能提交

    16、當數據庫 crash 后,如何恢復未刷盤的數據到內存中?

    根據 redo log 和 的兩階段提交,未持久化的數據分為幾種情況:

    17、redo log 寫入方式?

    redo log包括兩部分內容,分別是內存中的日志緩沖(redo log )和磁盤上的日志文件(redo log file)。

    MySQL 每執行一條 DML 語句,會先把記錄寫入 redo log (用戶空間) ,再保存到內核空間的緩沖區 OS- 中,后續某個時間點再一次性將多個操作記錄寫到 redo log file(刷盤) 。這種先寫日志,再寫磁盤的技術,就是WAL。

    可以發現,redo log 寫入到redo log file,是經過OS 中轉的。其實可以通過參數進行配置,參數值含義如下:

    18、redo log 的執行流程?

    我們來看下Redo log的執行流程,假設執行的 SQL 如下:

    update?T?set?a?=1?where?id?=666

    MySQL 客戶端將請求語句 T set a =1 where id =666,發往 MySQL 層。MySQL 層接收到 SQL 請求后,對其進行分析、優化、執行等處理工作,將生成的 SQL 執行計劃發到 存儲引擎層執行。 存儲引擎層將a修改為1的這個操作記錄到內存中。記錄到內存以后會修改 redo log 的記錄,會在添加一行記錄,其內容是需要在哪個數據頁上做什么修改。此后,將事務的狀態設置為 ,說明已經準備好提交事務了。等到 MySQL 層處理完事務以后,會將事務的狀態設置為 ,也就是提交該事務。在收到事務提交的請求以后,redo log 會把剛才寫入內存中的操作記錄寫入到磁盤中,從而完成整個日志的記錄過程。19、 的概念是什么,起到什么作用, 可以保證 crash-safe 嗎?20、什么是兩階段提交?

    MySQL 將 redo log 的寫入拆成了兩個步驟: 和 ,中間再穿插寫入,這就是"兩階段提交"。

    而兩階段提交就是讓這兩個狀態保持邏輯上的一致。 用于恢復主機故障時的未更新的物理數據, 用于備份操作。兩者本身就是兩個獨立的個體,要想保持一致,就必須使用分布式事務的解決方案來處理。

    為什么需要兩階段提交呢?

    在恢復數據時, 狀態為 則說明 也成功,直接恢復數據;如果 是 ,則需要查詢對應的 事務是否成功,決定是回滾還是執行。

    21、MySQL 怎么知道 是完整的?

    一個事務的 是有完整格式的:

    22、什么是 WAL 技術,有什么優點?

    WAL,中文全稱是 Write-Ahead ,它的關鍵點就是日志先寫內存,再寫磁盤。MySQL 執行更新操作后,在真正把數據寫入到磁盤前,先記錄日志。

    好處是不用每一次操作都實時把數據寫盤,就算 crash 后也可以通過redo log 恢復,所以能夠實現快速響應 SQL 語句。

    23、 日志的三種格式

    日志有三種格式

    格式

    每一條會修改數據的 SQL 都會記錄在 中

    Row格式

    不記錄 SQL 語句上下文相關信息,僅保存哪條記錄被修改。

    Mixed格式

    實際上就是 與 Row 的結合。一般的語句修改使用 格式保存mysql 查詢數據庫狀態,如一些函數, 無法完成主從復制的操作,則采用 row 格式保存 ,MySQL 會根據執行的每一條具體的 SQL 語句來區分對待記錄的日志形式。

    24、redo log日志格式

    redo log (內存中)是由首尾相連的四個文件組成的,它們分別是:、、、。

    25、原本可以執行得很快的 SQL 語句,執行速度卻比預期的慢很多,原因是什么?如何解決?

    原因:從大到小可分為四種情況

    解決:

    26、 數據頁結構

    一個數據頁大致劃分七個部分

    數據相關27、MySQL 是如何保證數據不丟失的?28、誤刪數據怎么辦?

    DBA 的最核心的工作就是保證數據的完整性,先要做好預防,預防的話大概是通過這幾個點:

    29、drop、 和 的區別30、在 MySQL 中有兩個 kill 命令

    kill 不掉的原因

    31、如何理解 MySQL 的邊讀邊發32、MySQL 的大表查詢為什么不會爆內存?33、MySQL 臨時表的用法和特性34、MySQL 存儲引擎介紹(、、)35、都說 好,那還要不要使用 引擎?36、如果數據庫誤操作, 如何執行數據恢復?

    數據庫在某個時候誤操作,就可以找到距離誤操作最近的時間節點的bin log,重放到臨時數據庫里,然后選擇誤刪的數據節點,恢復到線上數據庫。

    主從備份相關37、MySQL 是如何保證主備同步?

    主備關系的建立:

    MySQL 主備切換流程:

    一個事務完整的同步過程:

    38、什么是主備延遲

    主庫和備庫在執行同一個事務的時候出現時間差的問題,主要原因有:

    39、為什么要有多線程復制策略?40、MySQL 的并行策略有哪些?41、MySQL的一主一備和一主多從有什么區別?

    在一主一備的雙 M 架構里,主備切換只需要把客戶端流量切到備庫;而在一主多從架構里,主備切換除了要把客戶端流量切到備庫外,還需要把從庫接到新主庫上。

    42、主庫出問題如何解決?43、MySQL 讀寫分離涉及到過期讀問題的幾種解決方案?44、MySQL的并發鏈接和并發查詢有什么區別?性能相關45、短時間提高 MySQL 性能的方法46、為什么 MySQL 自增主鍵 ID 不連續?47、 為什么要用自增 ID 作為主鍵?48、如何最快的復制一張表?49、grant 和 flush 語句50、要不要使用分區表?51、join 用法52、MySQL 有哪些自增ID?各自場景是什么?53、Xid 在 MySQL 內部是怎么生成的呢?

    MySQL 內部維護了一個全局變量 ,每次執行語句(包括語句)的時候將它賦值給 ,然后給這個變量加 1。如果當前語句是這個事務執行的第一條語句,那么 MySQL 還會同時把 賦值給這個事務的 Xid。

    而 是一個純內存變量,重啟之后就清零了。所以你就知道了,在同一個數據庫實例中,不同事務的 Xid 也是有可能相同的。但是 MySQL 重啟之后會重新生成新的 文件,這就保證了,同一個 文件里mysql 查詢數據庫狀態,Xid 一定是惟一的。

    鎖相關54、說一下 MySQL 的鎖55、什么是幻讀?

    值在同一個事務中,存在前后兩次查詢同一個范圍的數據,第二次看到了第一次沒有查詢到的數據。

    幻讀出現的場景:

    幻讀帶來的問題:

    解決:

    其它為什么系列56、為什么 MySQL 會抖一下?57、為什么刪除了表,表文件的大小還是沒變?58、count(*)實現方式以及各種 count 對比59、 排序內部原理60、如何高效的使用 MySQL 顯式隨機消息

    持續更新中。

    參考:

    今天的嘮嗑就到這里了,我們下期再見。

    重磅推薦

    磊哥的正式上線了,這次的課程誠意滿滿,共計 19 大模塊,并首次加入了 Cloud 相關面試內容,共計 20 余萬字,是我目前見過最好的 Java 面試課了。

    一句話概括:最全的面試題沒我新,最新的面試題沒我全。且這次配套了 6 大增值服務:簡歷輔導、一對一答疑、專屬復習規劃、項目評審、模擬面試、職業規劃,價格非常低,一次性購買,永久閱讀,點擊查看詳情:。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有