【发布时间】:2012-04-02 14:06:37
【问题描述】:
我的数据库中有一个包含大约 500 万条记录的表,我注意到每条记录的 ID 在每次插入时都不会增加一个。
例如,我有以下架构设置:
我的表 activity_id INT(11) PRIMARY (AUTO_INCREMENT),created_at DATETIME
如果我查看表格并按日期时间排序,数字不是连续的。实际上,似乎 MySQL 正在寻找何时删除,然后在其中添加新记录。
Edit Delete 5000089 2012-03-17 04:31:46
Edit Delete 5000087 2012-03-17 04:31:44
Edit Delete 5000086 2012-03-17 04:31:43
Edit Delete 5000085 2012-03-17 04:31:43
Edit Delete 5000084 2012-03-17 04:31:31
**Edit Delete 5000088 2012-03-17 04:31:30**
**Edit Delete 5000076 2012-03-17 04:31:30**
Edit Delete 5000082 2012-03-17 04:31:29
正如您在格林威治标准时间 4:31:30 的信息中看到的那样,我们有 2 个插入,其中应该有 83 和 84,但它奇怪地增加了。来自应用程序的数据库插入未指定 ID,并且 activity_id 的字段设置为 Auto_increment。
对于为什么会发生这种情况,任何帮助都会非常有用。
有没有人见过这样的东西?
【问题讨论】:
-
只是好奇,但如果它们与日期不连续,为什么这很重要?
-
我们应该假设datetime值是由mysql中的
NOW()生成的,还是在一组独立的clent应用程序中生成的?
标签: mysql database primary-key