Mysql (1)簡單認識Mysql

2021-10-04 16:49:53 字數 1240 閱讀 9910

mysql 是一種關係型資料庫,預設埠號是3306

在5.5版之前,mysql的預設資料庫引擎是myisam,雖然效能極佳,而且提供了大量的特性,包括全文索引、壓縮、空間函式等,但myisam不支援事務和行級鎖,而且最大的缺陷就是崩潰後無法安全恢復

不過,5.5版本之後,mysql引入了innodb(事務性資料庫引擎),mysql 5.5版本後預設的儲存引擎為innodb。大多數時候我們使用的都是 innodb 儲存引擎,但是在某些情況下使用 myisam 也是合適的比如讀密集的情況下。(如果你不介意 myisam 崩潰恢復問題的話)。

(2.1.1)兩者對比

(1)是否支援行級鎖?

myisam 只有表級鎖(table-level locking),而innodb 支援行級鎖(row-level locking)和表級鎖,預設為行級鎖。

(2)是否支援事務和崩潰後的安全恢復?

myisam 強調的是效能,每次查詢具有原子性,其執行速度比innodb型別更快,但是不提供事務支援。

但是innodb 提供事務支援事務,外部鍵等高階資料庫功能。 具有事務(commit)、回滾(rollback)和崩潰修復能力(crash recovery capabilities)的事務安全(transaction-safe (acid compliant))型表。

(3)是否支援外來鍵?

myisam不支援,而innodb支援。

(4)是否支援mvcc?

僅 innodb 支援。應對高併發事務, mvcc比單純的加鎖更高效;mvcc只在 read committed 和 repeatable read 兩個隔離級別下工作;mvcc可以使用 樂觀(optimistic)鎖 和 悲觀(pessimistic)鎖來實現;各資料庫中mvcc實現並不統一。

(2.1.2)認識一下mvcc(多版本併發控制:multiversion concurrency control)

多版本控制: 指的是一種提高併發的技術。最早的資料庫系統,只有讀讀之間可以併發,讀寫,寫讀,寫寫都要阻塞。引入多版本之後,只有寫寫之間相互阻塞,其他三種操作都可以並行,這樣大幅度提高了innodb的併發度。在內部實現中,與postgres在資料行上實現多版本不同,innodb是在undolog中實現的,通過undolog可以找回資料的歷史版本。找回的資料歷史版本可以提供給使用者讀(按照隔離級別的定義,有些讀請求只能看到比較老的資料版本),也可以在回滾的時候覆蓋資料頁上的資料。在innodb內部中,會記錄乙個全域性的活躍讀寫事務陣列,其主要用來判斷事務的可見性。

mysql 1 基礎架構

我們可以將mysql分為兩大層server層和儲存引擎層 1.聯結器 聯結器 負責和客戶端建立連線,獲取許可權,維持和管理連線 連線命令示例 mysql h 127.0.0.1 p 3306 u root p上面的命令,其實就是我們通過客戶端工具mysql去連線服務端,也就是建立連線。連線建立成功後...

MySQL(1) 儲存引擎

儲存引擎就是如何儲存資料 如何為儲存的資料建立索引 如何更新 查詢資料等技術的實現方法。因為在關聯式資料庫中資料是以表的形式儲存的,所以儲存引擎也可以稱為表型別 即儲存和操作此表的型別 在oracle和sqlserver等資料庫中只有一種儲存引擎,所有的資料儲存管理機制都是一樣的 而mysql資料庫...

MySQL1 資料庫MySQL的簡單的介紹與安裝

1.mysql 計算機 二進位制資料 2.2 資料如何儲存?賬號密碼該怎麼儲存?能存到excel?可以存.會有什麼問題?安全。儲存限制。2.3 資料庫管理系統 dbms rdbms 關係型資料庫 oracle mysql mssql pgnosql 非關係型資料庫 mongodb esredis 雲...