Создание индекса на базе данных SQLite с использованием DBIx :: Class - PullRequest
2 голосов
/ 06 января 2011

Я начинаю думать, что моим таблицам DBIx :: Class нужны индексы - у меня есть несколько дорогих запросов по нескольким объединениям, и я хотел бы посмотреть, смогу ли я их немного оптимизировать. Есть ли способ создавать и поддерживать индексы для таблиц в DBIx :: Class?

1 Ответ

4 голосов
/ 06 января 2011

Тонкая инструкция говорит о создании функции sqlt_deploy_hook и использовании add_index для создания индекса; например:

package My::Schema::Result::Artist;

 __PACKAGE__->table('artist');
 __PACKAGE__->add_columns(id => { ... }, name => { ... })

 sub sqlt_deploy_hook {
   my ($self, $sqlt_table) = @_;

   $sqlt_table->add_index(name => 'idx_name', fields => ['name']);
 }

 1;
...