2011-03-10 94 views
1

這是一個相當普遍的問題。如果我運行SQL查詢並遍歷結果。數據庫在我循環訪問這些結果時是否會被鎖定,並阻止進一步的查詢/插入?另外,如果我要同時發送5或6個插入語句到數據庫(通過不同的調用),會不會有鎖定?MySQL數據庫鎖定

我有一個問題,我打算插入到數據庫中的一些日誌不在那裏,所以我想調查這條路線。

我使用PHP 5和最新的MySQL(不記得版本)。

謝謝。

+0

您使用的是哪種表格類型? MyISAM數據? InnoDB的? – Brad 2011-03-10 18:23:08

+0

您的腳本在插入日誌時可能會遇到錯誤。檢查Web服務器日誌文件?或者錯誤被吞噬了? – Bittrance 2011-03-10 18:36:50

+0

@Brad:我正在使用MyISAM。 – webnoob 2011-03-10 18:45:09

回答

1

之間存在「鎖定」和「腐敗」

數據庫鎖的差別是什麼哪個數據庫做以防止數據損壞。當數據庫遇到兩個同時的DML(插入/更新/刪除)查詢時,它將鎖定相關的表。現在,可能會出現「行級」鎖或「表級」鎖

在鎖定中會發生什麼情況是表被鎖定,並且所有後續查詢都會排隊,直到數據庫執行當前查詢爲止。如果它的行級鎖定,取決於數據庫多個更新是同時允許的。

SELECT查詢:

當你通過你的結果集循環,有沒有對數據庫正在取得更多的呼叫(而在循環)。結果已經生成。因此,它不會影響數據庫