为什么mysql表原始id没有连续显示?

xoefb8l8  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(319)



有人回答我为什么mysql表原始id不是串行的吗?

xzlaal3s

xzlaal3s1#

mysql将根据您的查询,尽可能快地给出结果。
如果您没有告诉mysql对任何字段进行排序,mysql可能会选择它在磁盘上的排序顺序。
mysql中的记录并不总是按顺序存储在磁盘上。例如,如果删除表中间的一条记录,它们可能会无序。下一条记录可能会(出于节省空间的原因)插入到先前删除记录的位置。
别担心这个。这很正常。如果您创建的应用程序使用mysql,请确保包括 ORDER BY id 在查询结束时获取可预测的顺序。

gstyhher

gstyhher2#

如果你不使用 ORDER BY 子句使所需的顺序显式,查询结果由实现决定。这意味着mysql可以选择顺序,如果你不。
对于myisam表,默认顺序是表中存储行的顺序,随着时间的推移,行的添加和删除可能会混淆。新行可能会与已删除行留下的间隙相匹配,即使这样会使它们存储“无序”。
对于innodb表,默认顺序是按用于读取行的索引。这通常是主键,但可能不是。这取决于表定义和用于读取行的sql查询。
只是使用 ORDER BY 如果要按特定列对行进行排序。

相关问题