WEFV2626EFCEYYYB15VEF

 

詳細資料

  • ISBN:9578900678
  • 規格:平裝 / 21 x 14.8 x 1.5 cm / 普通級 / 單色印刷
  • 出版地:台灣
  • 本書分類:> > >

 

 

- 點擊上方「中國統計網」訂閱我吧!- ... MySQL基礎概念相關的名詞還是挺多的,比如3大範式、4種隔離界別、ACID、DQL、DML、DDL,還有redo、undo、binlog等,本文就統一整理下MySQL常見的基礎概念,方便小夥伴們翻 DQL:data query language 指SELECT查詢語句 DML:data manipulation language 指SELECT、UPDATE、INSERT、DELETE這4種對數據操控語句 DDL:data definition language,數據定義語句 創建/修改/刪除表結構,主要有CREATE、ALTER、DROP等 MDL鎖:Metadata Locking metalock指的是資料庫及表的結構信息 MySQL中,DDL不屬於事務範疇,如果事務和DDL並行執行,操作相關聯的表的話,會出現各種意想不到問題,導致事務特性被破壞或者binlog順序錯亂等,為解決這些問題而引入MDL鎖機制。 三大範式 第一範式:每個欄位都是原子的,也就說不可再分解 第二範式:有主鍵,非主鍵欄位依賴主鍵欄位 第三範式:非主鍵之間不能相互依賴 注意,三大範式是數據表的建議設計原則,並不是非得完全按照這個來設計,具體設計還要根據實際場景來分析。任何給定的數據通常有多種表示方法,完全的範式話和反範式化,以及二者的折中。在範式化資料庫中,任何數據都會出現且只出現一次,相反在反範式化中,數據是冗餘的。 ACID ACID是事務的4個特性,分別是原子性、一致性、隔離性和持久性。 A:atomicity,原子性,一個事務必須被視為一個不可分割的最小工作單元,整個事務中的所有操作要麼全部提交成功,要麼全部失敗回滾 C:consistency,一致性,資料庫總是從一個一致性的狀態轉換到另一個一致性的狀態 I:isolation,隔離性,通常來說,一個事務所做的修改在最終提交以前,對其他事務是不可見的(隔離級別在非提交讀時不滿足) D:一旦事務提交,則其所做的修改就會永久保存到資料庫中。 隔離級別 資料庫事務的4種隔離級別: 未提交讀:一個事務可以讀到另外一個事務未提交的數據 提交度:一個事務更新數據過程中,如果事務還未提交,其他事務讀不到該數據 可重複讀:該級別保證了在同一個事務中,多次讀取同樣記錄的結果是一樣的,解決了「提交讀」中不可重複讀的問題。但是理論上還是無法解決幻讀問題(通過間隙鎖可解決幻讀問題) 串行化:將所有事務都進行串行化處理,等級最高的隔離級別。 幻讀問題 幻讀就是當事務在讀取某個範圍數據時,另一個事務又在該範圍插入了新的數據,當之前的事務再次讀取該範圍數據時,就會產生幻行。產生幻讀的原因是之前的事務在讀取數據的範圍沒有增加範圍鎖(range-locks),也就是讀取時只是鎖定的行級共享鎖,沒有鎖定整個查詢區間或者表。 常見索引結構 B+樹索引:B+ 樹是關係型資料庫中常見的索引類型。注意:B+樹所以並不能找到一個給定鍵值的具體行,只能找到被查找數據行所在的頁,然後資料庫將頁讀入內存,在內存中進行查找,最後得到要查找的數據 哈希索引:InnoDB支持的哈希索引是自適應的,不能人為干預在一張表中生成哈希索引,innodb會根據表的使用情況自動生成哈希索引 全文索引:InnoDB支持全文索引,但是每張表只能有一個全文檢索的索引,一般都是使用倒排索引技術來實現 聚集索引&非聚集索引 聚集索引就是主鍵索引,其葉子節點就是記錄的數據(頁)。 非聚集索引也叫做輔助索引,其葉子結點記錄的是主鍵值。 以表t為例說明如下: createtableT (IDintprimarykey,kintNOTNULLDEFAULT0,svarchar(16)NOTNULLDEFAULT'',indexk(k))engine=InnoDB;insertintoTvalues(100,1,'aa'),(200,2,'bb'),(300,3,'cc'),(500,5,'ee'),(600,6,'ff'); 表T對應的主鍵索引和輔助索引如下: ... 幾個日誌: redo log:記錄的是頁的物理操作,InnoDB通過將事務操作先寫redo log,而不是將數據頁的更新寫磁碟,相當於將磁碟隨機寫(data文件)變成了順序寫(redo log),後續在MySQL"空閒"時再慢慢寫磁碟,提高伺服器性能 undo log:undo log保存了事務發生之前的數據的版本,可用於回滾,同時可提供多版本並發控制讀(MVCC),也就是非鎖定讀。undo log是邏輯日誌,在執行undo時,僅僅是將數據邏輯上恢復至事務之前的狀態,而不是從物理頁上操作的,這一條不同於redo log。事務開始時將當前版本生成undo log,undo也會產生redo來保證undo log可靠性 binlog:binlog是mysql層面的歸檔日誌,可用於主從複製和資料庫基於時間點的還原。binlog記錄的是邏輯日誌,記錄的是DDL和DML操作日誌,可以簡單認為是執行過的事務中的更新sql語句 慢查詢、錯誤日誌等 幾個文件: .ibd文件和.ibdata文件:.ibd文件和ibdata文件都是存放innodb數據的文件,之所有有2個,因為innodb支持配置來決定是使用共享表空間還是獨享表空間。獨享表空間使用".ibd"文件存儲數據,並且每個表有一個.ibd文件;如果使用共享表空間,則會使用ibdata文件,所有表公用一個(或者配置多個)ibdata文件。 .ifm文件:存放表相關的元數據信息。 End. 零基礎入職數據分析就業班 課程的形式主要是「直播+錄播」 報名專享:課程項目作業+1v1班主任監督學習+愛數據學院學員專屬網站+班級答疑群 課程結束後能熟練掌握SQL、Python、Excel、PPT等工具 疫情期間在家學習不添亂 ...

 

 

WEFV2626EFCEYYYB15VEF

 

 

 

文章來源取自於:

 

 

壹讀 https://read01.com/RMGzJjE.html

博客來 https://www.books.com.tw/exep/assp.php/888words/products/0010103580

如有侵權,請來信告知,我們會立刻下架。

DMCA:dmca(at)kubonews.com

聯絡我們:contact(at)kubonews.com


豐原染髮推薦推薦染髮髮廊台中南區精油養護護髮推薦髮型設計工作室台中西屯中長髮尷尬期專業剪髮推薦髮廊台灣大道附近秋冬髮色怎麼選專業剪髮推薦髮廊
龍井好感度最高色系推薦染髮店 一中商圈推薦油頭的露額側分髮型專業染髮燙髮髮廊 台中剪髮燙髮推薦台中西區剪髮推薦上班族染髮推薦髮廊 台中南區不經意微捲髮推薦髮型設計工作室 台中北區美髮推薦一中商圈推薦內彎髮型修改推薦髮廊 豐原韓系髮型專業染髮燙髮髮廊 霧面質感台中染髮推薦龍井頭皮護理上班族染髮推薦髮廊 新光三越附近結構護髮學生染髮推薦髮廊 PTT推薦的台中護髮染髮燙髮推薦

arrow
arrow
    全站熱搜

    愛上這一味 發表在 痞客邦 留言(0) 人氣()