SELECT 
  AVG (dr.rating_value) 
FROM 
  cscart_discussion_rating AS dr 
  LEFT JOIN cscart_discussion_posts AS dp ON dp.post_id = dr.post_id 
  LEFT JOIN cscart_discussion AS d ON d.thread_id = dp.thread_id 
WHERE 
  d.object_id = 31840 
  AND d.object_type = 'P' 
  AND type IN ('B', 'R') 
  AND dp.status = 'A' 
  AND dr.rating_value > 0

Query time 0.00027

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "1.46"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "d",
          "access_type": "ref",
          "possible_keys": [
            "PRIMARY",
            "object_id"
          ],
          "key": "object_id",
          "used_key_parts": [
            "object_id",
            "object_type"
          ],
          "key_length": "7",
          "ref": [
            "const",
            "const"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 0,
          "filtered": "20.00",
          "cost_info": {
            "read_cost": "1.00",
            "eval_cost": "0.04",
            "prefix_cost": "1.20",
            "data_read_per_join": "4"
          },
          "used_columns": [
            "thread_id",
            "object_id",
            "object_type",
            "type"
          ],
          "attached_condition": "(`ea201_diorama`.`d`.`type` in ('B','R'))"
        }
      },
      {
        "table": {
          "table_name": "dp",
          "access_type": "ref",
          "possible_keys": [
            "PRIMARY",
            "thread_id",
            "thread_id_2"
          ],
          "key": "thread_id",
          "used_key_parts": [
            "thread_id"
          ],
          "key_length": "4",
          "ref": [
            "ea201_diorama.d.thread_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 0,
          "filtered": "10.00",
          "index_condition": "(`ea201_diorama`.`d`.`thread_id` = `ea201_diorama`.`dp`.`thread_id`)",
          "cost_info": {
            "read_cost": "0.20",
            "eval_cost": "0.00",
            "prefix_cost": "1.44",
            "data_read_per_join": "8"
          },
          "used_columns": [
            "post_id",
            "thread_id",
            "status"
          ],
          "attached_condition": "((`ea201_diorama`.`dp`.`status` = 'A') and (`ea201_diorama`.`dp`.`post_id` is not null))"
        }
      },
      {
        "table": {
          "table_name": "dr",
          "access_type": "eq_ref",
          "possible_keys": [
            "PRIMARY"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "post_id"
          ],
          "key_length": "3",
          "ref": [
            "ea201_diorama.dp.post_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 0,
          "filtered": "33.33",
          "cost_info": {
            "read_cost": "0.02",
            "eval_cost": "0.00",
            "prefix_cost": "1.46",
            "data_read_per_join": "0"
          },
          "used_columns": [
            "rating_value",
            "post_id"
          ],
          "attached_condition": "(`ea201_diorama`.`dr`.`rating_value` > 0)"
        }
      }
    ]
  }
}

Result

AVG (dr.rating_value)