SELECT 
  MONTH(
    FROM_UNIXTIME(cscart_cp_blog_posts.timestamp)
  ) as month, 
  YEAR(
    FROM_UNIXTIME(cscart_cp_blog_posts.timestamp)
  ) as year 
FROM 
  cscart_cp_blog_posts 
  INNER JOIN cscart_cp_blog_post_categories ON cscart_cp_blog_post_categories.post_id = cscart_cp_blog_posts.post_id 
  LEFT JOIN cscart_cp_blog_categories ON cscart_cp_blog_categories.category_id = cscart_cp_blog_post_categories.category_id 
WHERE 
  1 
  AND cscart_cp_blog_categories.status IN ('A') 
  AND cscart_cp_blog_categories.company_id = 1 
  AND cscart_cp_blog_posts.status = 'A' 
GROUP BY 
  month, 
  year 
ORDER BY 
  year DESC, 
  month DESC 
LIMIT 
  0, 3

Query time 0.00057

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "16.89"
    },
    "ordering_operation": {
      "using_filesort": true,
      "grouping_operation": {
        "using_temporary_table": true,
        "using_filesort": false,
        "nested_loop": [
          {
            "table": {
              "table_name": "cscart_cp_blog_categories",
              "access_type": "ALL",
              "possible_keys": [
                "PRIMARY"
              ],
              "rows_examined_per_scan": 5,
              "rows_produced_per_join": 1,
              "filtered": "20.00",
              "cost_info": {
                "read_cost": "3.37",
                "eval_cost": "0.20",
                "prefix_cost": "3.57",
                "data_read_per_join": "1K"
              },
              "used_columns": [
                "category_id",
                "status",
                "company_id"
              ],
              "attached_condition": "((`44mm_ru`.`cscart_cp_blog_categories`.`company_id` = 1) and (`44mm_ru`.`cscart_cp_blog_categories`.`status` = 'A'))"
            }
          },
          {
            "table": {
              "table_name": "cscart_cp_blog_post_categories",
              "access_type": "index",
              "possible_keys": [
                "PRIMARY"
              ],
              "key": "PRIMARY",
              "used_key_parts": [
                "post_id",
                "category_id"
              ],
              "key_length": "6",
              "rows_examined_per_scan": 35,
              "rows_produced_per_join": 3,
              "filtered": "10.00",
              "using_index": true,
              "using_join_buffer": "Block Nested Loop",
              "cost_info": {
                "read_cost": "2.12",
                "eval_cost": "0.70",
                "prefix_cost": "12.69",
                "data_read_per_join": "56"
              },
              "used_columns": [
                "post_id",
                "category_id"
              ],
              "attached_condition": "(`44mm_ru`.`cscart_cp_blog_post_categories`.`category_id` = `44mm_ru`.`cscart_cp_blog_categories`.`category_id`)"
            }
          },
          {
            "table": {
              "table_name": "cscart_cp_blog_posts",
              "access_type": "eq_ref",
              "possible_keys": [
                "PRIMARY",
                "status"
              ],
              "key": "PRIMARY",
              "used_key_parts": [
                "post_id"
              ],
              "key_length": "3",
              "ref": [
                "44mm_ru.cscart_cp_blog_post_categories.post_id"
              ],
              "rows_examined_per_scan": 1,
              "rows_produced_per_join": 3,
              "filtered": "97.14",
              "cost_info": {
                "read_cost": "3.50",
                "eval_cost": "0.68",
                "prefix_cost": "16.89",
                "data_read_per_join": "14K"
              },
              "used_columns": [
                "post_id",
                "timestamp",
                "status"
              ],
              "attached_condition": "(`44mm_ru`.`cscart_cp_blog_posts`.`status` = 'A')"
            }
          }
        ]
      }
    }
  }
}

Result

month year
1 2025
12 2023
11 2023