mysql优化 - MySQL中的for update nowait
巴扎黑
巴扎黑 2017-04-17 13:16:07
0
1
673

MySQL中是不是不支持nowait,有如下语句

select * from table_name for update nowait;

执行完报错,语法错误

mysql> select * from t_needs_word where word_type="N" for update nowait;
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'nowait' at line 1

这个有什么解决方案吗? 还有MySQL如果我默认使用InnoDB引擎,一个表中如果没有主键,是不是就不支持行锁了,而变成了表锁.我测试下来,是这样的.
如果MySQL不支持nowait的话,有没有什么替代的方案,求大神告知,感激不劲.

巴扎黑
巴扎黑

全部回覆(1)
大家讲道理

依照你的需求設定innodb_lock_wait_timeout,最小可為1秒。

等待一秒會回傳錯誤訊息,但是如果你是在程式語言中的話,1秒其實算是比較長的時間了,這種情況下,你可以在程式裡面控制,透過程式設定一個更短的虛擬的“超時時間”,這種情況要考慮網路延遲。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板