השאילתה הבאה נתקעת לדקות ארוכות ללא מתן תשובה.
select
`records`.*,
`data0`.`value` as `laravel_through_key`
from
`records`
inner join `meta_records` as `data2` on `data2`.`record_id` = `records`.`id`
inner join `meta_records` as `data1` on `data1`.`record_id` = `data2`.`value`
inner join `meta_records` as `data0` on `data0`.`record_id` = `data1`.`value`
where
(
`data0`.`field_id` = 5
and `data0`.`field_type` = 'App\\Models\\Field'
)
and (
`data1`.`field_id` = 7
and `data1`.`field_type` = 'App\\Models\\Field'
)
and (
`data2`.`field_id` = 16
and `data2`.`field_type` = 'App\\Models\\Field'
)
and (
(
exists (
select
*
from
`meta_records` as `meta_exists`
where
`meta_exists`.`field_id` = 10
and `meta_exists`.`value` > 1000
and `meta_exists`.`record_id` = `data1`.`record_id`
)
)
)
and `data0`.`value` in (
4017,
4018,
4019,
4020,
4021,
4022,
4023,
4024,
4025,
4026,
4027,
4028,
4029,
4030,
4031,
4032,
4033,
4034,
4035,
4036,
4037,
4038,
4039,
4040,
4041,
4042,
4043,
4044,
4045,
4046,
4047,
4048,
4049,
4050,
4051,
4052,
4053,
4054,
4055,
4056,
4057,
4058,
4059,
4060,
4061,
4062,
4063,
4064,
4065,
4066,
4067,
4068,
4069,
4070,
4071,
4072,
4073,
4074,
4075,
4076,
4077,
4078,
4079,
4080,
4081,
4082,
4083,
4084,
4085,
4086,
4087,
4088,
4089,
4090,
4091,
4092,
4093,
4094,
4095,
4096,
4097,
4098,
4099,
4100,
4101,
4102,
4103,
4104,
4105,
4106,
4107,
4108,
4109,
4110,
4111,
4112,
4113,
4114,
4115,
4116
)
ללא הקטע הבא (מתוך השאילתה הקודמת):
and (
(
exists (
select
*
from
`meta_records` as `meta_exists`
where
`meta_exists`.`field_id` = 10
and `meta_exists`.`value` > 1000
and `meta_exists`.`record_id` = `data1`.`record_id`
)
)
)
השאילתה חוזרת תוך 230ms עם 823 תוצאות.
מה הדרך לנטרל את הכלב השחור??? או יותר נכון מה כך כף מציק לו שהוא נתקע...?