Reposting [my answer][1] to a similar question regarding SQL Server:

> In the SQL world, order is not an inherent property of a set of data.
> Thus, you get no guarantees from your RDBMS that your data will come
> back in a certain order -- or even in a consistent order -- unless you
> query your data with an ORDER BY clause.

So, to answer your question:

 - MySQL sorts the records however it wants without any guarantee of consistency.
 - If you intend to rely on this order for anything, **you must specify your desired order using `ORDER BY`. To do anything else is to set yourself up for unwelcome surprises.**

This is a property of all SQL, not just MySQL. The relevant text in the [SQL-92 spec](http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt) is:

<!-- language-all: lang-none -->

> If an &lt;order by clause&gt; is not specified, then the ordering of the rows of Q is implementation-dependent.

There are similar bits of text in the spec for cursors.

  [1]: https://dba.stackexchange.com/questions/5774/why-is-ssms-inserting-new-rows-at-the-top-of-a-table-not-the-bottom/5775#5775