Как указать порядок значений индекса при вызове функции add_index для SQL :: Translator :: Table? - PullRequest
0 голосов
/ 07 января 2011

Я использую DBIx :: Class для создания таблиц и их индексов и поэтому вызываю SQL :: Translator :: Table add_index () , но я хотел бы иметь возможность указать порядок значений для некоторыхстолбцов, например:

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

Возможно ли добавить модификаторы 'ASC' и 'DESC' в add_table ()?

Если нет, я подозреваю, что этот SQLбыть неэффективным:

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

Есть ли какие-либо предлагаемые способы обхода базы данных в этом случае?(Я использую MySql 5.x

1 Ответ

1 голос
/ 01 марта 2011

Нет, в настоящее время SQL :: Translator :: Producer :: MySQL (и даже сам DBIx :: Class, я думаю) не предоставляют способ сделать это.

Однако, согласно руководству MySQL , эти сопоставления индекса в настоящее время игнорируются:

Спецификация index_col_name может заканчивается ASC или DESC. Эти ключевые слова разрешены для будущих расширений для указания возрастания или убывания хранение значений индекса. В настоящее время они анализируются, но игнорируются; значения индекса всегда хранятся в порядке возрастания.

...