【发布时间】:2010-10-18 01:32:45
【问题描述】:
假设 MySQL 表 (ISAM) 的默认顺序通过执行更改:
ALTER TABLE tablename ORDER BY columnname ASC;
从现在开始,我是否保证在我的查询中没有指定“ORDER BY”(即“SELECT * FROM tablename WHERE ... 限制 10;")?
是否有任何我应该注意的极端情况?
更新 #1: 非常感谢 Quassnoi,他正确地指出 INSERT 和 DELETE 会打乱排序。这导致我提出以下额外问题:
- 更新呢?假设没有对表进行 INSERT 或 DELETE,而只是更新 - 排序顺序会保持不变吗?
- 假设进行了 INSERT 和 DELETE - 我如何再次“重建”排序,比如每天一次(在这种特定情况下,表仅每天更改,因此在更改完成后每天重建它应该仍然可以! )。 REPAIR TABLE 是否修复它,还是必须再次添加 do ALTER TABLE ... ORDER BY?
【问题讨论】:
-
默认排序顺序似乎是一种懒惰的尝试,最终会让您头疼不已。我根本不会碰它,只是确保在我的查询中指定 Order By。
标签: mysql sorting alter-table