關於mysql的一些總結

2021-08-18 19:38:16 字數 974 閱讀 3803

首先談一下mysql常用兩種儲存引擎:myisam,innodb。需要注意的是目前mysql預設的儲存引擎為innodb 。

檢視mysql預設儲存引擎的命令如下:

接下來簡單記錄一下mysql的myisam和innodb特點

myisam:不支援事務,不支援外來鍵,鎖機制為表鎖,有較高的插入和查詢(原子)速度,採用非聚集索引,索引檔案的資料域儲存指向資料檔案的指標。輔索引與主索引基本一致,但是輔索引不用保證唯一性。 

表鎖分為讀鎖和寫鎖,關於讀寫相容性:

下為已上鎖,右為要申請的鎖讀寫

讀true

false

寫false

false

當select時,會自動給表加上讀鎖,當update,delect,insert,會自動給表加上寫鎖。

innodb:支援事務,支援外來鍵, 除了表鎖之外還支援行鎖。主鍵索引採用聚集索引(索引的資料域儲存資料檔案本身),輔索引的資料域儲存主鍵的值;因此從輔索引查詢資料,需要先通過輔索引找到主鍵值,再訪問輔索引;最好使用自增主鍵,防止插入資料時,為維持b+樹結構,檔案的大調整。應用場景為有各種操作增刪改查,對於資料完整性高,併發下要保證資料一致性。

注意行鎖會產生死鎖的情況,如事務a鎖住了1,2行,事務b鎖住了3,4行,接下來,事務a要鎖3,4,行,事務b要鎖1,2行。但表鎖不會因為表鎖一開始就把要涉及的表全鎖住了。

再記錄一下事務的隔離級別:

read-uncommitted:會髒讀,不可重複讀,是幻讀。

read-committed:這個是預設的事務隔離級別,不會產生髒讀,不可以重複讀,也會產生幻讀。

repeatable-read:不會髒讀,可重複讀,會產生幻讀。

serializable:不會髒讀,不可以重複讀,不會出現幻讀。

還總結了一些,但是還是先把時間留著學習吧,待續~~

關於stringstream的一些總結

c 標準庫中的提供了比ansi c的更高階的一些功能,即單純性 型別安全和可擴充套件性。可以使用這些庫來實現安全和自動的型別轉換。如果你已習慣了風格的轉換,也許你首先會問 為什麼要花額外的精力來學習基於的型別轉換呢?也許對下面乙個簡單的例子的回顧能夠說服你。假設你想用sprintf 函式將乙個變數從...

關於JSON的一些總結

一 關於json json是一種類似於xml的通用資料交換格式,具有比xml更高的傳輸效率.從結構上看,所有的資料 data 最終都可以分解成三種型別 第一種型別是標量 scalar 也就是乙個單獨的字串 string 或數字 numbers 比如 北京 這個單獨的詞。第二種型別是序列 sequen...

關於指標的一些總結

指標和陣列一樣,都是基於其它型別的。指標的宣告 int p updates 運算子兩邊的空格是可選的。對每個指標變數命名,都需要乙個 變數名,為取址,它的值為變數的位址 32位 指標變數,為指標儲存的位址所儲存的值。可以通過改變它來改變。malloc 可以分配記憶體,但c 更好的方法是使用new。i...