1、首先從mysql儲存引擎說起、什麼是儲存引擎呢?在mysql中、儲存引擎是指儲存mysql資料表的不同的儲存技術、這樣可以滿足不同的業務需求
常見的mysql儲存引擎(儲存技術):innodb、memory、myisam
2、innodb的特點:支援事務、支援外來鍵、支援自動增長列
優點:提供良好的事務處理、崩潰修復和併發控制
缺點:讀寫效率差、占用空間大
業務場景:傳統的嚴格要求事務一致性的場景、比如銀行的轉賬匯款、要求併發控制,需要頻繁進行更新、刪除操作的資料庫
3、memory的特點:資料儲存到記憶體
優點:處理速度非常快
缺點:資料容易丟失、生命周期短
場景:適合應用程式、需要初始化或不會變動的資料、對資料的安全性要求較低,使用相對較小的資料庫表
4、myisam的特點:資料訪問帶索引、frm儲存表結構、myd儲存資料、myi儲存索引
優點:占用空間小、處理速度快
缺點:不支援事務的完整性和併發性
場景:對事務沒要求、並需要高速訪問資料的場景(類似hbase的場景)、應用完整性、併發性要求很低
5、acid特性:資料庫事務正確執行的四個特性
5.1、原子性(atomicity)
整個事務中的所有操作,要麼全部完成,要麼全部不完成,不可能停滯在中間某個環節。事務在執行過程中發生錯誤,會被回滾(rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。
5.2、一致性(consistency)
在事務開始之前和事務結束以後,資料庫的完整性約束沒有被破壞。
5.3、隔離性(isolation)
兩個事務的執行是互不干擾的,乙個事務不可能看到其他事務執行時,中間某一時刻的資料。
5.4、永續性(durability)
在事務完成以後,該事務所對資料庫所作的更改便持久的儲存在資料庫之中,並不會被回滾。
由於一項操作通常會包含許多子操作,而這些子操作可能會因為硬體的損壞或其他因素產生問題,要正確實現acid並不容易。acid建議資料庫將所有需要更新 以及修改的資料一次操作完畢,但實際上並不可行。
6、目前實現acid的方式有兩種:第一種是write ahead logging,也就是日誌式的方式。第二種是shadow paging。第一種wal(預寫入)的方式比較常用。
關於MySQL資料庫
mysql最流行的關係型資料庫管理系統 mysql官網 mysql是web應用方面最好的rdbms應用軟體之一 rdbms relational database management system關聯式資料庫管理系統 問 什麼是資料庫?答 資料庫 database 是按照資料結構來組織 儲存和管理...
關於MySQL資料庫
mysql屬於關係型資料庫 說到mysql資料庫就必須說一下sql語句 sql是結構化查詢語言,是一種用來操作rdbms的資料庫語言,當前關係型資料庫都支援使用sql語言進行操作,也就是說可以通過 sql 操作 oracle,sql server,mysql,sqlite 等等所有的關係型的資料庫 ...
關於MySQL資料庫
mysql最流行的關係型資料庫管理系統 mysql官網 mysql是web應用方面最好的rdbms應用軟體之一 rdbms relational database management system關聯式資料庫管理系統 問 什麼是資料庫?答 資料庫 database 是按照資料結構來組織 儲存和管理...