MySQL基礎概念知多少

2022-03-26 13:12:42 字數 1156 閱讀 7836

mysql基礎概念相關的名詞還是挺多的,比如3大正規化、4種隔離界別、acid、dql、dml、ddl,還有redo、undo、binlog等,本文就統一整理下mysql常見的基礎概念,方便小夥伴們翻閱~

三大正規化

注意,三大正規化是資料表的建議設計原則,並不是非得完全按照這個來設計,具體設計還要根據實際場景來分析。任何給定的資料通常有多種表示方法,完全的正規化話和反正規化化,以及二者的折中。在正規化化資料庫中,任何資料都會出現且只出現一次,相反在反正規化化中,資料是冗餘的。

acid

acid是事務的4個特性,分別是原子性、一致性、隔離性和永續性。

隔離級別

資料庫事務的4種隔離級別:

幻讀問題

幻讀就是當事務在讀取某個範圍資料時,另乙個事務又在該範圍插入了新的資料,當之前的事務再次讀取該範圍資料時,就會產生幻行。產生幻讀的原因是之前的事務在讀取資料的範圍沒有增加範圍鎖(range-locks),也就是讀取時只是鎖定的行級共享鎖,沒有鎖定整個查詢區間或者表。

常見索引結構

聚集索引和非聚集索引

聚集索引就是主鍵索引,其葉子節點就是記錄的資料(頁)。非聚集索引也叫做輔助索引,其葉子結點記錄的是主鍵值。以表t為例說明如下:

create table t (

id int primary key,

k int not null default 0,

s varchar(16) not null default '',

index k(k)) engine=innodb;

insert into t values(100,1, 'aa'),(200,2,'bb'),(300,3,'cc'),(500,5,'ee'),(600,6,'ff');

表t對應的主鍵索引和輔助索引如下:

幾個日誌

幾個檔案

Golang基礎知多少

變數常量 運算子控制語句 首先,go語言中的 結構做乙個概覽 所屬包 package main 匯入依賴包 import fmt 宣告常量 const filename abc.txt 宣告全域性變數 var a string hello 型別宣告 type myint int 宣告結構體 type...

MySQL儲存引擎知多少

mysql是我們經常使用的資料庫處理系統 dbms 不知小夥伴們有沒有注意過其中的 儲存引擎 storage engine 呢?有時候面試題中也會問道mysql幾種常用的儲存引擎的區別。這次就簡短侃一下儲存引擎那些事兒。先去查一下 引擎 概念。引擎 engine 是電子平台上開發程式或系統的核心元件...

mysql觸發器知多少

很多人都能熟練使用觸發器來達到輔助業務處理的功能。但真正了解觸發器嗎?下面就簡單介紹幾個我自己親自使用觸發器的經驗,相信對一些新手是有所幫助的 1.load data 也會觸發insert 觸發器。2.replace會觸發delete 和 insert 觸發器。3.觸發器中執行的插入或者刪除動作不會...