MySQL分页 - 是否应该对缓存进行排序?

时间:2011-09-28 20:55:30

标签: mysql caching sorting pagination

我找不到任何关于此的信息,所以要么MySQL处理这个问题,因此没有问题,或者我使用了错误的关键字:

如果有人想要对MySQL结果进行排序,我应该在某个地方使用某种缓存版本,还是应该使用ORDER BY子句进行查询?有没有更好的方法来做到这一点,以便用户每次更改页面时都不会排序数千行?

2 个答案:

答案 0 :(得分:1)

您希望订购的列上应create an index

请参阅文档ORDER BY Optimization,了解MySQL何时可以使用索引来提高ORDER BY查询的性能。

答案 1 :(得分:1)

您应该在要排序的列上创建“具有排序条件”的索引。

这是创建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)