相关疑难解决方法(0)

MySQL中的默认排序顺序(ALTER TABLE ... ORDER BY ...;)

假设通过执行以下命令来更改MySQL表(ISAM)的默认顺序:

ALTER TABLE tablename ORDER BY columnname ASC;
Run Code Online (Sandbox Code Playgroud)

从现在开始,我保证以"columnname ASC"的顺序获取从表中检索到的记录,假设在我的查询中没有指定"ORDER BY"(即"SELECT*FROM tablename WHERE ... LIMIT 10;")?

我应该注意哪些角落?

更新#1:非常感谢Quassnoi,他正确地指出INSERT和DELETE会扰乱排序.这引出了以下额外问题:

  • UPDATE怎么样?假设没有对表进行INSERT或DELETE,只进行更新 - 排序顺序是否完整?
  • 假设INSERT和DELETE已经完成 - 我如何再次"重建"排序,比如说每天一次(在这种特定情况下,表每天只会更改,因此在更改完成后每天重建它应该仍然可以!).REPAIR TABLE是否修复它,或者必须再次添加ALTER TABLE ... ORDER BY?

mysql sorting alter-table

17
推荐指数
2
解决办法
3万
查看次数

具有AUTO_INCREMENT列的MySQL表中的简单SELECT的默认顺序是什么

我有一个表(mytable)和一个AUTO_INCREMENT列(id_mt).当我做一个简单的查询时

SELECT * FROM mytable;
Run Code Online (Sandbox Code Playgroud)

结果由AUTO_INCREMENT列按顺序排序

SELECT * FROM mytable order by id_mt;
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:当你没有使用'order by'时,如果你有一个AUTO_INCREMENT列,那么结果顺序的规则(如果有的话)是什么?

对于一些参考其他帖子的人来说要明确:我不使用

ALTER TABLE mytable ORDER BY sort_order ASC;
Run Code Online (Sandbox Code Playgroud)

很明显,当您使用ORDER BY查询时,此查询只会更改性能.我的问题更多的是'AUTO_INCREMENT是否会改变(强制?)简单SELECT的顺序?'

mysql sql sql-order-by

1
推荐指数
1
解决办法
174
查看次数

标签 统计

mysql ×2

alter-table ×1

sorting ×1

sql ×1

sql-order-by ×1