mysql将根据您的查询,尽可能快地给出结果。 如果您没有告诉mysql对任何字段进行排序,mysql可能会选择它在磁盘上的排序顺序。 mysql中的记录并不总是按顺序存储在磁盘上。例如,如果删除表中间的一条记录,它们可能会无序。下一条记录可能会(出于节省空间的原因)插入到先前删除记录的位置。 别担心这个。这很正常。如果您创建的应用程序使用mysql,请确保包括 ORDER BY id 在查询结束时获取可预测的顺序。
如果你不使用 ORDER BY 子句使所需的顺序显式,查询结果由实现决定。这意味着mysql可以选择顺序,如果你不。 对于myisam表,默认顺序是表中存储行的顺序,随着时间的推移,行的添加和删除可能会混淆。新行可能会与已删除行留下的间隙相匹配,即使这样会使它们存储“无序”。 对于innodb表,默认顺序是按用于读取行的索引。这通常是主键,但可能不是。这取决于表定义和用于读取行的sql查询。 只是使用 ORDER BY 如果要按特定列对行进行排序。
2条答案
按热度按时间xzlaal3s1#
mysql将根据您的查询,尽可能快地给出结果。
如果您没有告诉mysql对任何字段进行排序,mysql可能会选择它在磁盘上的排序顺序。
mysql中的记录并不总是按顺序存储在磁盘上。例如,如果删除表中间的一条记录,它们可能会无序。下一条记录可能会(出于节省空间的原因)插入到先前删除记录的位置。
别担心这个。这很正常。如果您创建的应用程序使用mysql,请确保包括
ORDER BY id
在查询结束时获取可预测的顺序。gstyhher2#
如果你不使用
ORDER BY
子句使所需的顺序显式,查询结果由实现决定。这意味着mysql可以选择顺序,如果你不。对于myisam表,默认顺序是表中存储行的顺序,随着时间的推移,行的添加和删除可能会混淆。新行可能会与已删除行留下的间隙相匹配,即使这样会使它们存储“无序”。
对于innodb表,默认顺序是按用于读取行的索引。这通常是主键,但可能不是。这取决于表定义和用于读取行的sql查询。
只是使用
ORDER BY
如果要按特定列对行进行排序。