Как создать индекс на LOWER («users». «Username») в Rails (используя postgres)

У меня есть последовательное сканирование в моемUsersController#create действие.

SELECT ? AS one FROM "users" WHERE (LOWER("users"."username") = LOWER(?) AND "users"."id" != ?) LIMIT ?

Explain plan
1 Query planLimit (cost=0.00..3.35 rows=1 width=0)
2 Query plan-> Seq Scan on users (cost=0.00..3.35 rows=1 width=0)
3 Query planFilter: ?

Я вполне уверен, что это вытекает из следующей проверки модели:

validates :username, uniqueness: { case_sensitive: false }

Должен ли я создавать индекс против этого экспресса? И если да, то как правильно это сделать в Rails 4?

Ответы на вопрос(1)

Ваш ответ на вопрос