mysql事務及引擎

2021-07-30 13:40:55 字數 1966 閱讀 1443

資料庫事務介紹:

簡單的說,事務就是指邏輯上的一組sql操作,組成這組操作的sql語句,執行時要麼全成功,要麼全失敗。

事務的四大特性(acid):

1.原子性(atomicity)

事務是不可分割的乙個單位,事務中的所有sql操作要麼都發生,要麼都不發生。

2.一致性(consistency)

事務發生前和發生後,資料的完整性必須保持一致。

3.隔離性(isolation)

當併發訪問資料庫時,乙個正在執行的事務在執行完畢前,對於其他的會話是不可見的,多個併發事務之間的資料是相互隔離的。使用mysqldump備份時,使用--single-transcation引數

4.永續性(durability)

乙個事務一旦被提交,它對資料庫中的資料的改變是永久性的。如果出了錯誤,事務也不允許撤銷,只能通過」補償式事務」。

事務的開啟:

資料庫預設事務時自動提交的。也就是發一條sql他就執行一條。如果想多條sql放乙個事務中執行,則需要使用事務進行處理。當我們開啟乙個事務,而且沒有提交,mysql會自動回滾事務。

資料庫事務開啟自動提交:

set autocommit =on

set autocommit =off ###關閉自動提交

commit 提交事務

rollback 回滾事務

mysql常見引擎:

innodb:

支援相容的(acid)事務,支援事務的4個級別,支援多版本閱讀;

支援引數完整性,即對外鍵的支援;

行級鎖定(更新時一般是鎖定當前行),通過索引實現,表掃瞄仍然會是表鎖,注意間隙鎖的影響;

讀寫阻塞與事務隔離級別相關;

具有非常高效的快取特性,能快取索引,也能快取資料;

整個表和主鍵以cluster方式儲存,組成一顆平衡樹;

所有secondary index 都會儲存主鍵資訊。

支援分割槽,表空間,類似oracle資料庫。

支援鍵外約束。

和myisam引擎相比,對硬體資源要求較高。

相比myisam引擎,innodb更消耗資源,速度沒有myisam快。

innodb調優:

1.主鍵盡可能小,避免給secondary index帶來過大的空間負擔。

2.避免全表掃瞄,因為會使表鎖。

3.盡可能快取所有的引擎和資料,提高響應速度,減少磁碟i/o消耗。

4.在大批量小插入的時候,盡量自己控制事務而不要使用autocommit自動提交。

5.合理使用innodb_flush_log_at_trx_commit值,不要過度追求安全性。

6.避免主鍵更新,因為這回帶來大量的資料移動。

myisam:是mysql5.5.5前預設的儲存引擎。

不支援事務;

表級鎖定,讀寫互相阻塞,讀讀不阻塞;

只會索引快取,通過key_buff_size快取索引,不會快取資料;

讀取速度較快,占用資源較少;

不支援外來鍵約束,但支援全文索引。

myisam引擎調優:

1.設定合適的索引(快取機制)。

2.調整讀寫優先順序,根據實際要求確保重要操作優先執行。

3.啟用延遲插入改善大批量寫入效能(降低寫入頻率,盡可能一次寫入多條資料)。

4.盡量順序操作讓insert資料都寫入到尾部,減少阻塞。

5.分解大的操作,降低單個操作的阻塞時間。

6.降低併發數(減少對mysql的訪問),某些高併發場景通過應用進行排隊佇列機制。

7.相對靜態(更改不頻繁)的資料庫資料,充分利用query cache和memcached快取伺服器可以極大的提高訪問效率。

8.myisam的count只有在全表掃瞄時才特別高效,帶有其他條件的count時都需要進行實際資料訪問。

9.可以把主從同步的主庫使用innodb,從庫使用myisam引擎。

mysql引擎和事務

對於應用程式和使用者來說,同樣一張表的資料無論用什麼引擎來儲存,看到的資料都是一樣的,只是不同的引擎在功能 占用空間大小 讀取效能等方面可能有所差別。mysql最常用的儲存引擎為innodb myisam和全文索引 5.5.5以前預設儲存引擎為myisam,5.5.5及之後預設儲存引擎為innodb...

mysql儲存引擎,事務,事務回滾

檢視已有表的使用儲存引擎 show create table 表名 g 檢視當前資料庫的預設儲存引擎和可提供的儲存引擎 show engines 修改儲存引擎 step1 修改配置檔案 etc my.cnf default storage engine 儲存引擎 step2 重啟mysqld服務 修...

MySQL索引 事務 儲存引擎

索引建立的方法 建立索引的原則依據 檢視索引的方法 刪除索引的方法 事務的概念 事務的acid特點 事務控制語句 事務的控制方法 儲存引擎概念介紹 業選擇儲存引擎依據 修改儲存引擎 注 no unique為0 注 no unique為1 注 屬於唯一性索引的一種 直接建立索引 修改表結構方式新增索引...