1. 程式人生 > 實用技巧 >3-1-5 MySQL基礎-事務機制與資料匯入匯出

3-1-5 MySQL基礎-事務機制與資料匯入匯出

事務機制

如果資料的寫入直接操作資料檔案是非常危險的事情,所以MySQL利用日誌來間接寫入.

MySQL總共5種日誌,其中只有redo和undo日誌與事務有關

什麼是事務

事務是一個或多個SQL語句組成的整體,要麼全部執行成功,要麼全部執行失敗

RDBMS = SQL語句 + 事務(ACID)

管理事務

預設情況下,MySQL執行每條SQL都會自動開啟和提交事務.

為了讓多條SQL納入到一個事務下,可以手動管理事務.

START TRANSACTION;

SQL語句

[COMMIT][ROLLBACK];

事務的ACID屬性

原子性:一個事務中的所有操作,要麼全部成功,要麼全部失敗.

一致性:一個事務執行結果必須保持一致.事務可以併發執行,但最終Mysql卻序列執行.

隔離性:事務要求不受其他併發事務的影響,如果給定時間內,該事務是資料庫唯一執行的事務.

永續性:事務一旦提交,結果便是永久性的,即使傳送宕機依然可以靠事務日誌完成詩句持久化

事務的隔離級別

read uncommitted 讀取未提交資料

read committed 讀取已提交資料

repeatable 重複讀取,得到的結果是一致的,不會受其他事務影響

serializable 序列化,讓事務序列執行,就不會產生上述問題了

資料匯入匯出

資料匯出與備份的區別

1.資料匯出,匯出的是純粹的業務資料

2.資料備份,備份的是資料檔案,日誌檔案,索引檔案等等

匯出SQL檔案

mysqldunmp用來把業務資料匯出成SQL檔案,其中也包括表結構

mysqldump -uroot -p [no-data] 邏輯庫 > 路徑

如果業務資料特別多,建議只匯出表結構,然後用SELCT INTO OUTFILE把資料匯出成文字文件

匯入SQL檔案

source命令用於匯入SQL檔案,包括建立資料表,寫入記錄等.

1 USE demo;
2 SOURCE backup.sql