policy_status: ACTIVE_CLIENT_STATUSES).count
и в ответ консоли выводит
(27095.9ms) SELECT COUNT(*) FROM "contacts" INNER JOIN "users" ON "users"."deleted_at" IS NULL AND "users"."id" = "contacts"."user_id" WHERE "contacts"."deleted_at" IS NULL AND "users"."id" = $1 AND "contacts"."deleted_at" IS NULL AND "contacts"."category" = $2 AND "contacts"."policy_status" IN ($3, $4) [["id", 1], ["category", "client"], ["policy_status", "active_issued"], ["policy_status", "active_submitted"]]
что очень долго, поможет ли тут просто добавить индекс ? или нужно что то другое. ?
А какие индексы сейчас есть?
Хотя, я обратил внимание на главные условия и по нему посоветовал индекс добавить, но внутри запроса много условий на самом деле и то с INNER JOIN-ом, в этом случае как составить полноценный индекс на все, я незнаю, пусть ответят знающие.
в этом и вся проблема, и это самый простой пример, там есть еще с ренджом дата-тайм и тд. как только пойму как ускорить этот запрос, думаю с остальными будет так же
используй EXPLAIN SELECT .... - оно покажет как БД ищет и какие индексы задействованы
Обсуждают сегодня