0

我正在使用 DBIx::Class 创建表及其索引,因此调用SQL::Translator::Table add_index()但我希望能够在某些列上指定值顺序,如下所示:

CREATE INDEX myindex ON mytable (
    username ASC,
    created  DESC
);

是否可以向 add_table() 提供“ASC”和“DESC”修饰符?

如果没有,我怀疑这个 SQL 效率低下:

SELECT text FROM mytable WHERE username = ? ORDER BY created DESC LIMIT 20;

在这种情况下,有什么建议的解决方法来减少数据库开销吗?(我正在使用 MySql 5.x

4

1 回答 1

1

不,目前SQL::Translator::Producer::MySQL(甚至我认为 DBIx::Class 本身)没有提供这样做的方法。

但是,根据MySQL 手册,这些索引排序规则目前被忽略:

index_col_name 规范可以以 ASC 或 DESC 结尾。这些关键字被允许用于指定升序或降序索引值存储的未来扩展。目前,它们被解析但被忽略;索引值始终按升序存储。

于 2011-03-01T10:44:39.807 回答