Reposting my answer 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 are just curious about the internals of MySQL, Rolando provides an interesting answer.
- If, on the other hand, 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.