SELECT 
  f.feature_id, 
  f.purpose, 
  p.product_id, 
  p.parent_product_id, 
  g.id, 
  g.code 
FROM 
  cscart_product_variation_group_features AS f 
  INNER JOIN cscart_product_variation_groups AS g ON f.group_id = g.id 
  INNER JOIN cscart_product_variation_group_products AS p ON f.group_id = p.group_id 
WHERE 
  p.product_id IN (
    94930, 94931, 94932, 94933, 94934, 94935, 
    94936, 94937, 94938, 94939, 94940, 
    94941, 94942, 94943, 94944, 94945, 
    94946, 94947, 94948, 94949, 95100, 
    95558, 95559, 95560, 95638, 95640, 
    95645, 95646, 95653, 95790, 95932, 
    95933, 95936, 95940, 96245, 96246, 
    96247, 96248, 96249, 96250, 96251, 
    96252, 96253, 96254, 96255, 96256, 
    96257, 96258, 96259, 96260, 96261, 
    96262, 96263, 96264, 96265, 96266, 
    96267, 96268, 96269, 96270, 96271, 
    96272, 96273, 96274, 96275, 96276, 
    96277, 96278, 96279, 96280, 96281, 
    96282, 96283, 96284, 96285, 96286, 
    96287, 96288, 96289, 96290, 96291, 
    96292, 96293, 96294, 96522, 96523, 
    96524, 96525, 96526, 96527, 96528, 
    96574, 96575, 96576, 96577, 96578
  )

Query time 0.00065

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "1.05"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "f",
          "access_type": "ALL",
          "possible_keys": [
            "idx_group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 1,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "0.25",
            "eval_cost": "0.10",
            "prefix_cost": "0.35",
            "data_read_per_join": "104"
          },
          "used_columns": [
            "feature_id",
            "purpose",
            "group_id"
          ]
        }
      },
      {
        "table": {
          "table_name": "g",
          "access_type": "eq_ref",
          "possible_keys": [
            "PRIMARY"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "id"
          ],
          "key_length": "3",
          "ref": [
            "nuie_scalesta_net.f.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 1,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "0.25",
            "eval_cost": "0.10",
            "prefix_cost": "0.70",
            "data_read_per_join": "400"
          },
          "used_columns": [
            "id",
            "code"
          ]
        }
      },
      {
        "table": {
          "table_name": "p",
          "access_type": "ref",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "key": "idx_group_id",
          "used_key_parts": [
            "group_id"
          ],
          "key_length": "3",
          "ref": [
            "nuie_scalesta_net.f.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 1,
          "filtered": "100.00",
          "index_condition": "(`nuie_scalesta_net`.`p`.`product_id` in (94930,94931,94932,94933,94934,94935,94936,94937,94938,94939,94940,94941,94942,94943,94944,94945,94946,94947,94948,94949,95100,95558,95559,95560,95638,95640,95645,95646,95653,95790,95932,95933,95936,95940,96245,96246,96247,96248,96249,96250,96251,96252,96253,96254,96255,96256,96257,96258,96259,96260,96261,96262,96263,96264,96265,96266,96267,96268,96269,96270,96271,96272,96273,96274,96275,96276,96277,96278,96279,96280,96281,96282,96283,96284,96285,96286,96287,96288,96289,96290,96291,96292,96293,96294,96522,96523,96524,96525,96526,96527,96528,96574,96575,96576,96577,96578))",
          "cost_info": {
            "read_cost": "0.25",
            "eval_cost": "0.10",
            "prefix_cost": "1.05",
            "data_read_per_join": "16"
          },
          "used_columns": [
            "product_id",
            "parent_product_id",
            "group_id"
          ]
        }
      }
    ]
  }
}