mySQL:物理排序



是否有一种方法,我可以排序表行指定列(如用户名),重新分配它的主键值,然后用排序值替换表内容?

是的,MySQL有一种方法来确定文件中行的表排序。如果您的表是MyISAM类型,您可以运行:

ALTER TABLE `users` ORDER BY `username`;

表现在将按用户名排序。这将修复文件中的行顺序,文件本身可能在文件系统中被分割,并且您无法使用ALTER TABLE来解决这个问题。从手册:

ORDER BY允许您以特定的顺序创建行。注意,在插入和删除之后,表不会保持这个顺序。当您知道大多数情况下要以特定顺序查询行时,此选项非常有用。通过在对表进行重大更改后使用此选项,您可能能够获得更高的性能。在某些情况下,如果表按照您稍后想要排序的列排序,那么它可能会使MySQL的排序更容易。

但是,如果你想要重新排列一个数字主键,以便排序列表中的第一个用户将拥有1,2等,那么就不要这样做。

相关内容

  • 没有找到相关文章

最新更新