InnoDB的此示例演示了一种使用互锁查询来实现自己的计数器的方法:
http://dev.mysql.com/doc/refman/5.0/en/innodb-locking-
reads.html
您需要为什么创建缺口?要保留ID?我宁愿不惜一切代价“修复”设计并更新其他模块,而不是摸一个序列。
我暗示着通过为每个ID插入一个默认行(标记为无效)来分配和返回ID,而不是仅仅显式地增加序列。这种方法是一致且可移植的。以后,您可以通过匹配的默认值来更新这些默认行,而不必使用显式的序列值来强制插入。这需要更多的内存,但没有锁。在过期的行上进行垃圾收集可以在这里提供帮助。“插入或更新”语句可以重新创建垃圾收集的行,但是我不会这样做。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)