SELECT 
  q_images.*, 
  q_images_links.*, 
  q_common_descriptions.description AS alt, 
  q_images.image_id AS images_image_id 
FROM 
  q_images_links 
  LEFT JOIN q_images ON q_images_links.image_id = q_images.image_id 
  LEFT JOIN q_common_descriptions ON q_common_descriptions.object_id = q_images.image_id 
  AND q_common_descriptions.object_holder = 'images' 
  AND q_common_descriptions.lang_code = 'en' 
WHERE 
  q_images_links.object_type = 'product' 
  AND q_images_links.type = 'M' 
  AND q_images_links.object_id IN (
    '29252', '29290', '29292', '29321', 
    '29344', '29351', '29352', '29385', 
    '29387', '29388', '29391', '29394', 
    '29682', '29685', '29687', '29692', 
    '29704', '29707', '29709', '29712', 
    '29718', '29732', '29733', '29735', 
    '29736', '29737', '29747', '29748', 
    '29754', '29766'
  ) 
ORDER BY 
  q_images_links.position, 
  q_images_links.pair_id

Query time 0.00145

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "433.21"
    },
    "ordering_operation": {
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "84.00"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "q_images_links",
            "access_type": "range",
            "possible_keys": [
              "object_id"
            ],
            "key": "object_id",
            "used_key_parts": [
              "object_id",
              "object_type",
              "type"
            ],
            "key_length": "81",
            "rows_examined_per_scan": 84,
            "rows_produced_per_join": 84,
            "filtered": "100.00",
            "index_condition": "((`portal`.`q_images_links`.`object_type` = 'product') and (`portal`.`q_images_links`.`type` = 'M') and (`portal`.`q_images_links`.`object_id` in ('29252','29290','29292','29321','29344','29351','29352','29385','29387','29388','29391','29394','29682','29685','29687','29692','29704','29707','29709','29712','29718','29732','29733','29735','29736','29737','29747','29748','29754','29766')))",
            "cost_info": {
              "read_cost": "130.81",
              "eval_cost": "16.80",
              "prefix_cost": "147.61",
              "data_read_per_join": "7K"
            },
            "used_columns": [
              "pair_id",
              "object_id",
              "object_type",
              "image_id",
              "detailed_id",
              "type",
              "position"
            ]
          }
        },
        {
          "table": {
            "table_name": "q_images",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "image_id"
            ],
            "key_length": "4",
            "ref": [
              "portal.q_images_links.image_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 84,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "84.00",
              "eval_cost": "16.80",
              "prefix_cost": "248.41",
              "data_read_per_join": "64K"
            },
            "used_columns": [
              "image_id",
              "image_path",
              "image_x",
              "image_y",
              "is_high_res"
            ]
          }
        },
        {
          "table": {
            "table_name": "q_common_descriptions",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "object_id",
              "lang_code",
              "object_holder"
            ],
            "key_length": "107",
            "ref": [
              "portal.q_images.image_id",
              "const",
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 84,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "84.00",
              "eval_cost": "16.80",
              "prefix_cost": "349.21",
              "data_read_per_join": "49K"
            },
            "used_columns": [
              "object_id",
              "description",
              "lang_code",
              "object_holder"
            ],
            "attached_condition": "<if>(is_not_null_compl(q_common_descriptions), (`portal`.`q_common_descriptions`.`object_id` = `portal`.`q_images`.`image_id`), true)"
          }
        }
      ]
    }
  }
}

Result

image_id image_path image_x image_y is_high_res pair_id object_id object_type detailed_id type position alt images_image_id
0 42416 29252 product 44378 M 0
0 44384 29292 product 46346 M 0
0 44402 29290 product 46364 M 0
0 44859 29352 product 46821 M 0
0 44864 29351 product 46826 M 0
0 44949 29344 product 46911 M 0
0 45083 29321 product 47045 M 0
0 45368 29394 product 47330 M 0
0 45376 29391 product 47338 M 0
0 45398 29388 product 47360 M 0
0 45404 29387 product 47366 M 0
0 45416 29385 product 47378 M 0
0 45692 29707 product 47654 M 0
0 45724 29704 product 47686 M 0
0 45922 29692 product 47884 M 0
0 46001 29685 product 47963 M 0
0 46045 29682 product 48007 M 0
0 47213 29748 product 49175 M 0
0 47215 29747 product 49177 M 0
0 47229 29737 product 49191 M 0
0 47230 29736 product 49192 M 0
0 47231 29735 product 49193 M 0
0 47235 29733 product 49197 M 0
0 47236 29732 product 49198 M 0
0 47261 29718 product 49223 M 0
0 47665 29766 product 49626 M 0
0 47667 29754 product 49628 M 0
0 47674 29712 product 49635 M 0
0 47812 29687 product 49773 M 0
0 82460 29709 product 84403 M 0