MySQL auto_increment vs max

时间:2009-10-04 04:43:17

标签: sql mysql

好的,哪个更快更好用?

AUTO_INCREMENT

调用一个执行最大值的SQL,然后添加一个

所以最终问题是你应该使用mysql来做它还是自己做?

3 个答案:

答案 0 :(得分:4)

绝对自动增量。您要编写的SQL不是线程安全的,只适用于通过特定存储过程/ sql输入的数据。

答案 1 :(得分:3)

auto_increment将比最大聚合更快,最大聚合必须在最少的时候查找索引,或者在最坏的情况下进行全表扫描。另外,max()可能不是线程安全的,除非你非常小心。

答案 2 :(得分:2)

使用MAX的问题是isolation level - 充其量,由于读取可能不正确的记录,该值有可能过度膨胀。在最坏的情况下,获取当前最大值的查询是在前一次插入发生之前读取表 - 导致冲突。

另一个考虑因素是必须推送自己的id生成器和内容来检索id,因为你无法使用LAST_INSERT_ID()