是否可以在删除的地方使用最后一个 ID mysql?
is it possible to using last id where it's deleted mysql?
所以我对这个问题有同样的问题Auto Increment after delete in MySQL
根据该答案,并考虑到该答案提供的每个条件,我必须说我必须在 mysql.
上删除后执行自动递增
我有 table 让我们说
table : product
fields : id, name
因此,如果我的 ID 为 16、17、18,然后我删除了 ID 16,然后创建了新 ID,我想让新 ID 位于“16”而不是 19。根据该答案
Take a step back and ask "why you need to recycle key values?" Do unsigned INT (or BIGINT) not provide a large enough key space?
我必须说是的,字段可能无法提供足够大的键 space
我该怎么办
注意:table 上的 ID 是唯一的,没有连接到任何其他 table,我只是想避免如果 ID 不能再次提供足够大的密钥 space
如何实现?
说实话,这是achieveable.Insert记录每次删除时对应的id值放入一个有序队列中,从队列中取最小值作为要插入的id(如果队列为空, 使用数据库生成的id).
值得做吗?
我假设您的主键是 id
,它是 mysql 中的聚集索引。所以这种方式可能会造成更多的页面拆分,从而降低插入性能。
并且需要保证有序队列中的id在插入失败的同一time.If只能被一个插入线程消费,需要re-enqueueid.If的大小有序队列太大,排序操作也会降低性能。
终于不能靠id来分析了。例如。 id最大的记录为最新记录
所以我对这个问题有同样的问题Auto Increment after delete in MySQL
根据该答案,并考虑到该答案提供的每个条件,我必须说我必须在 mysql.
上删除后执行自动递增我有 table 让我们说
table : product
fields : id, name
因此,如果我的 ID 为 16、17、18,然后我删除了 ID 16,然后创建了新 ID,我想让新 ID 位于“16”而不是 19。根据该答案
Take a step back and ask "why you need to recycle key values?" Do unsigned INT (or BIGINT) not provide a large enough key space?
我必须说是的,字段可能无法提供足够大的键 space
我该怎么办
注意:table 上的 ID 是唯一的,没有连接到任何其他 table,我只是想避免如果 ID 不能再次提供足够大的密钥 space
如何实现?
说实话,这是achieveable.Insert记录每次删除时对应的id值放入一个有序队列中,从队列中取最小值作为要插入的id(如果队列为空, 使用数据库生成的id).
值得做吗?
我假设您的主键是 id
,它是 mysql 中的聚集索引。所以这种方式可能会造成更多的页面拆分,从而降低插入性能。
并且需要保证有序队列中的id在插入失败的同一time.If只能被一个插入线程消费,需要re-enqueueid.If的大小有序队列太大,排序操作也会降低性能。
终于不能靠id来分析了。例如。 id最大的记录为最新记录