2009-10-04 99 views
2

好吧,它更快更好用?MySQL auto_increment vs max

AUTO_INCREMENT

調用哪個該做了最大,然後自己添加一個

所以,最後的問題是,如果你使用MySQL來做,或做一個SQL?

回答

2

使用MAX的問題是isolation level - 最好的情況是,由於讀取的記錄可能不正確,因此存在值過度膨脹的可能性。在最壞的情況下,獲取當前最大值的查詢是在前一次插入發生之前讀取表 - 導致衝突。

另一個考慮是不得不推出自己的ID生成器和東西來檢索ID,因爲你不能使用LAST_INSERT_ID()

4

絕對自動增量。您要編寫的SQL不是線程安全的,只適用於通過特定存儲過程/ sql進入的數據。

3

auto_increment將比最大聚合速度快,它必須至少執行一次索引查找或最差的全表掃描。另外,除非你非常小心,否則max()可能不是線程安全的。