我正在使用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
答案 0 :(得分:1)
不,目前SQL::Translator::Producer::MySQL(我认为甚至是DBIx :: Class本身)也没有提供这样做的方法。
但是,根据MySQL manual,这些索引排序规则目前已被忽略:
index_col_name规范可以 以ASC或DESC结束。这些关键字 允许将来的扩展 用于指定升序或降序 索引值存储。目前,他们 被解析但被忽略;指数值 总是以升序存储。