MySQL 問題彙總

2021-10-01 23:08:40 字數 1240 閱讀 9239

乙個事務的binlog是有完整格式的

​ statement 格式的binlog,最後會有commit;

​ row格式的binglog,最後會有乙個xidevent

另外,在 mysql 5.6.2 版本以後,還引入了 binlog-checksum 引數,用來驗證 binlog 內容的正確性。對於 binlog 日誌由於磁碟原因,可能會在日誌中間出錯的情況,mysql 可以通過校驗 checksum 的結果來發現。所以,mysql 還是有辦法驗證事務 binlog 的完整性的。

回答:它們有乙個共同的資料字段,叫 xid。崩潰恢復的時候,會按順序掃瞄 redo log:

如果碰到既有 prepare、又有 commit 的 redo log,就直接提交;

如果碰到只有 parepare、而沒有 commit 的 redo log,就拿著 xid 去 binlog 找對應的事務。

如果你插入的記錄導致乙個unique索引或者primary key(主鍵)出現重複,那麼就會認為該條記錄存在,則執行update語句而不是insert語句,反之,則執行insert語句而不是更新語句。

若有導致unique key 衝突的記錄,則該條記錄不會被插入到資料庫中.

會的 ,mysql 不確定修改的id相同的行的a的值是否是2

update set a = 2 where id = 1;不能確定修改的a是否等於2,真正執行修改過程

update set a=2 where id = 1 and a = 2;不會執行修改過程,

MySQL問題彙總

1.先刪除前面5條記錄,然後再插入,mysql會自動填補5條記錄的位置,但id還是從8自增,中顯示的從40開始是因為我前面又做了其他的操作。好像這是mysql的優化,你刪除了前面的 後面生成的 會去補那個地方,就是刪除時 不刪除 標識 再有新的 直接蓋上了,類似我們的檔案系統 估計像是檔案碎片修復一...

mysql問題彙總

mysql提供跳過訪問控制的命令列引數,通過在命令列以此命令啟動mysql伺服器 safe mysqld skip grant tables 即可跳過mysql的訪問控制,任何人都可以在控制台以管理員的身份進入mysql資料庫。root密碼丟失時 mysqld safe skip grant tab...

mysql優化問題彙總

sql優化 分割槽 分表 垂直分庫 水平分庫 讀寫分離 進入到mysql命令列。mysql u root p show plugins 檢視是否支援分割槽,最後會出現乙個 partition 這個行 表示支援 也可以 show variables like partition show table ...