mysql事務處理和鎖機制

2021-09-02 11:30:36 字數 931 閱讀 1022

1.3.如何避免鎖的資源競爭

1 )讓 select 速度盡量快,這可能需要建立一些摘要表。

2 )啟動 mysqld 時使用引數 --low-priority-updates 。這就會讓更新操作的優先順序低於 select 。

這種情況下,在上面的假設中,第二個 select 就會在 insert 之前執行了,而且也無需等待第乙個 select 了。

3 )可以執行 set low_priority_updates=1 命令,指定所有的更新操作都放到乙個指定的鏈結中去完成。

4 )用 low_priority 屬性來降低 insert , update , delete 的優先順序。

5 )用 high_priority 來提高 select 語句的優先順序。

6 )從 mysql 3.23.7 開始,可以在啟動 mysqld 時指定系統變數 max_write_lock_count 為乙個比較低的值,它能強制臨時地提高表的插入數達到乙個特定值後的所有 select 操作的優先順序。它允許在 write 鎖達到一定數量後有 read 鎖。

7 )當 insert 和 select 一起使用出現問題時,可以轉而採用 myisam 表,它支援併發的 select 和 insert 操作。

8 )當在同乙個表上同時有插入和刪除操作時, insert delayed 可能會很有用。

9 )當 select 和 delete 一起使用出現問題時, delete 的 limit 引數可能會很有用。

10 )執行 select 時使用 sql_buffer_result 有助於減短鎖表的持續時間。

11 )可以修改源** `mysys/thr_lock.c' ,只用乙個所佇列。這種情況下,寫鎖和讀鎖的優先順序就一樣了,這對一些應用可能有幫助。

[url]

[/url]

深入淺出mysql事務處理和鎖機制

1.事務處理和併發性 1.1.基礎知識和相關概念 1 全部的表型別都可以使用鎖,但是只有innodb和bdb才有內建的事務功能。2 使用begin開始事務,使用commit結束事務,中間可以使用rollback回滾事務。3 在預設情況下,innodb表支援一致讀。sql標準中定義了4個隔離級別 re...

深入淺出mysql事務處理和鎖機制

1.事務處理和併發性 1.1.基礎知識和相關概念 1 全部的表型別都可以使用鎖,但是只有innodb和bdb才有內建的事務功能。2 使用begin開始事務,使用commit結束事務,中間可以使用rollback回滾事務。3 在預設情況下,innodb表支援一致讀。sql標準中定義了4個隔離級別 re...

深入淺出MySQL事務處理和鎖機制

1.事務處理和併發性 1.1.基礎知識和相關概念 1 全部的表型別都可以使用鎖,但是只有 innodb 和 bdb 才有內建的事務功能。2 使用 begin 開始事務,使用 commit 結束事務,中間可以使用 rollback 回滾事務。3 在預設情況下,innodb 表支援一致讀。sql 標準中...