Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL自动增量vs最大值_Sql_Mysql - Fatal编程技术网

MySQL自动增量vs最大值

MySQL自动增量vs最大值,sql,mysql,Sql,Mysql,好的,哪一个更快更好用 自动增量 或 调用一个执行max的sql,然后添加一个 因此,最终的问题是,您应该使用mysql来完成还是自己完成呢?肯定是自动递增的。您要编写的SQL不是线程安全的,只适用于通过特定存储过程/SQL输入的数据。自动增量将比最大聚合快,最大聚合至少要进行索引查找,最坏的情况是进行完整表扫描。此外,除非您非常小心,否则max()可能不是线程安全的。使用max的问题是-最多,由于读取可能不正确的记录,值有可能过度膨胀。在最坏的情况下,获取当前最大值的查询是在上一次插入之前读取

好的,哪一个更快更好用

自动增量

调用一个执行max的sql,然后添加一个


因此,最终的问题是,您应该使用mysql来完成还是自己完成呢?

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

自动增量将比最大聚合快,最大聚合至少要进行索引查找,最坏的情况是进行完整表扫描。此外,除非您非常小心,否则max()可能不是线程安全的。

使用max的问题是-最多,由于读取可能不正确的记录,值有可能过度膨胀。在最坏的情况下,获取当前最大值的查询是在上一次插入之前读取表,从而导致冲突

另一个需要考虑的问题是必须使用自己的id生成器和其他工具来检索id,因为您不能使用
LAST\u INSERT\u id()