запрос:
$msg = XYZ::where(function ($q) use ($chat) {
$q->where('msg->x', $chat['xId'])->where('msg->y', $chat['yId']);
})->orWhere(function ($q) use ($chat) {
$q->where('msg->x', $chat['yId'])->where('msg->y', $chat['xId']);
})->orderBy('msg->sTime')->first();
Индекс:
CREATE INDEX msg ON XYZ USING GIN ("msg" jsonb_path_ops);
CREATE INDEX msg_x ON XYZ USING gin (("msg" -> 'x'));
CREATE INDEX msg_y ON XYZ USING gin (("msg" -> 'y'));
CREATE INDEX msg_stime ON XYZ USING gin (("msg" -> 'sTime'));
Я создал индекс для поля jsonb "msg", и я пытаюсь использовать нотацию @> в запросе в laravel.
рассматриваемый запрос работает отлично, но я просто хочу сократить время выполнения, создав индекс.