【发布时间】:2011-11-27 05:12:51
【问题描述】:
我找不到这方面的任何信息,所以要么是 MySQL 处理了这个,因此不是问题,要么我使用了错误的关键字:
如果有人想对 MySQL 结果进行排序,我应该在某处有缓存的排序版本,还是应该使用 ORDER BY 子句进行查询?有没有更好的方法来做到这一点,这样用户就不会在每次更改页面时都对数千行进行排序?
【问题讨论】:
标签: mysql caching sorting pagination
我找不到这方面的任何信息,所以要么是 MySQL 处理了这个,因此不是问题,要么我使用了错误的关键字:
如果有人想对 MySQL 结果进行排序,我应该在某处有缓存的排序版本,还是应该使用 ORDER BY 子句进行查询?有没有更好的方法来做到这一点,这样用户就不会在每次更改页面时都对数千行进行排序?
【问题讨论】:
标签: mysql caching sorting pagination
您应该在希望订购的列上create an index。
请参阅文档 ORDER BY Optimization,了解 MySQL 何时可以使用索引来提高 ORDER BY 的查询性能。
【讨论】:
您应该在要排序的列上创建一个“带有排序标准”的索引。
这是创建mysql索引的语法:
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[index_type]
ON tbl_name (index_col_name,...)
[index_type]
index_col_name:
col_name [(length)] [ASC | DESC]
因此,如果您通常检索一些按some_column 排序的DESC 排序的数据,您应该:
CREATE INDEX my_index ON my_table (some_column DESC)
【讨论】: