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.detailed_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 (
    '29794', '29795', '29796', '29797', 
    '29798', '29799', '29800', '29801', 
    '29802', '29804', '29805', '29806', 
    '29807', '29808', '29809', '29810'
  ) 
ORDER BY 
  q_images_links.position, 
  q_images_links.pair_id

Query time 0.00112

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "174.41"
    },
    "ordering_operation": {
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "33.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": 33,
            "rows_produced_per_join": 33,
            "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 ('29794','29795','29796','29797','29798','29799','29800','29801','29802','29804','29805','29806','29807','29808','29809','29810')))",
            "cost_info": {
              "read_cost": "55.61",
              "eval_cost": "6.60",
              "prefix_cost": "62.21",
              "data_read_per_join": "3K"
            },
            "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.detailed_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 33,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "33.00",
              "eval_cost": "6.60",
              "prefix_cost": "101.81",
              "data_read_per_join": "25K"
            },
            "used_columns": [
              "image_id",
              "image_path",
              "image_x",
              "image_y",
              "is_high_res"
            ],
            "attached_condition": "<if>(is_not_null_compl(q_images), (`portal`.`q_images_links`.`detailed_id` = `portal`.`q_images`.`image_id`), true)"
          }
        },
        {
          "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": 33,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "33.00",
              "eval_cost": "6.60",
              "prefix_cost": "141.41",
              "data_read_per_join": "19K"
            },
            "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 41CwFxt7NrL.jpg 500 423 N 47315 29810 product 49277 M 0 49277
0 41cIpKTlQQL._SL1000_.jpg 1000 1000 N 47317 29809 product 49279 M 0 49279
0 31JqmNe0h9L.jpg 496 500 N 47318 29808 product 49280 M 0 49280
0 41DlC1_6OUL.jpg 500 500 N 47320 29807 product 49282 M 0 49282
0 6163MNjtTAL._SL1000_.jpg 1000 1000 N 47321 29806 product 49283 M 0 49283
0 31-TX4cZLzL.jpg 500 444 N 47323 29805 product 49285 M 0 49285
0 41G2pcQ5-KL.jpg 500 462 N 47325 29804 product 49287 M 0 49287
0 41r3954EI2L.jpg 500 347 N 47326 29802 product 49288 M 0 49288
0 51daWp1PLVL.jpg 500 497 N 47328 29801 product 49290 M 0 49290
0 313mM9fdr8L.jpg 500 500 N 47333 29798 product 49295 M 0 49295
0 41ZzZbqL61L.jpg 500 426 N 47334 29797 product 49296 M 0 49296
0 412ZH5A-WlL.jpg 500 476 N 47337 29796 product 49299 M 0 49299
0 41pGeEeH24L.jpg 500 500 N 47339 29795 product 49301 M 0 49301
0 31emYRMvF7L.jpg 469 500 N 47341 29794 product 49303 M 0 49303
0 usb_charging_web.jpg 640 626 N 52787 29800 product 54748 M 0 54748
0 2_lnso-bx.jpg 640 626 N 82127 29799 product 84070 M 0 84070