插入中间行的新数据意外

时间:2013-04-13 17:02:27

标签: mysql insert row

我只是在我的网站中插入带有表单的数据,通常数据将插入到最后一行中,如: auto_increment name

1 a
2 b
3 c
4 d
5 e

但是,当我上次插入新数据时,它插入到表格的中间行,看起来像:

17 data17
30 data30
18 data18
19 data19
20 data20

已插入表格中间行(data30)的最新数据。 我很少发生(仍然发生)为什么会发生这种情况?以及我将来如何防止这件事?三江源。

1 个答案:

答案 0 :(得分:0)

您看到的是引擎返回的结果。这不是一个早期提取的问题,后来因为它取决于很多问题。首先,不要认为您的数据库表是FoxPro等顺序文件。它比那更复杂。接下来,对于返回数据的每个查询,请使用Order by子句来避免这些实例。

所以总是使用:

select columns from table order by column

以上内容将确保您以所需的方式获取数据,并且当数据库引擎在缓存中找到后续记录时从另一个数据库文件中的慢速媒体获取旧记录时不会感到惊讶。如果您阅读了RDBMS概念的基础知识,那么就会讨论这些内容,您还需要研究MySQL内部的工作原理。

我发现这篇很棒的文章讨论了现代数据库查询引擎的许多精彩功能。 http://thinkingmonster.wordpress.com/mysql/mysql-architecture/

尽管整篇文章都很好地讨论了这个主题,但您可能会特别关注讨论Record Cache的部分。