rails find_or_create_by работает медленно, когда база данных содержит 100 тыс. записей - PullRequest
0 голосов
/ 04 июня 2019

Я заметил, что find_or_create_by в рельсах замедляет прием данных, хотя у меня установлен индекс для полей SELECT. какие-либо предложения о том, как ускорить это? Я использую postgres

1 Ответ

2 голосов
/ 04 июня 2019

find_or_create_by - это просто запрос where с limit 1, и, если результат NULL, будет запущен запрос insert для возврата нового объекта.

Если вы правильно добавили индексирование встолбцы, тогда это будет быстрее, чем это должно быть.

Но для большой базы данных, которую вы описали, я предлагаю вам выполнять такие операции в фоновом режиме, используя sidekiq

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...