SELECT 
  SQL_CALC_FOUND_ROWS products.product_id, 
  descr1.product as product, 
  companies.company as company_name, 
  products.product_type, 
  products.parent_product_id, 
  cscart_product_review_prepared_data.average_rating average_rating, 
  cscart_product_review_prepared_data.reviews_count product_reviews_count 
FROM 
  cscart_products as products 
  LEFT JOIN cscart_product_descriptions as descr1 ON descr1.product_id = products.product_id 
  AND descr1.lang_code = 'vi' 
  LEFT JOIN cscart_product_prices as prices ON prices.product_id = products.product_id 
  AND prices.lower_limit = 1 
  LEFT JOIN cscart_companies AS companies ON companies.company_id = products.company_id 
  INNER JOIN cscart_products_categories as products_categories ON products_categories.product_id = products.product_id 
  INNER JOIN cscart_categories ON cscart_categories.category_id = products_categories.category_id 
  LEFT JOIN cscart_product_review_prepared_data ON cscart_product_review_prepared_data.product_id = products.product_id 
  AND cscart_product_review_prepared_data.storefront_id = 0 
  LEFT JOIN cscart_product_popularity as popularity ON popularity.product_id = products.product_id 
WHERE 
  1 
  AND companies.status IN ('A') 
  AND products.company_id = 793 
  AND (
    products.amount > 0 
    OR products.tracking = 'D'
  ) 
  AND (
    products.usergroup_ids = '' 
    OR FIND_IN_SET(0, products.usergroup_ids) 
    OR FIND_IN_SET(1, products.usergroup_ids)
  ) 
  AND products.status IN ('A') 
  AND prices.usergroup_id IN (0, 0, 1) 
  AND products.company_id = 793 
  AND products.parent_product_id = 0 
GROUP BY 
  products.product_id 
ORDER BY 
  popularity.total desc, 
  products.product_id ASC 
LIMIT 
  0, 30

Query time 0.12068

JSON explain

{
  "query_block": {
    "select_id": 1,
    "filesort": {
      "sort_key": "popularity.total desc, products.product_id",
      "temporary_table": {
        "nested_loop": [
          {
            "table": {
              "table_name": "companies",
              "access_type": "const",
              "possible_keys": ["PRIMARY"],
              "key": "PRIMARY",
              "key_length": "4",
              "used_key_parts": ["company_id"],
              "ref": ["const"],
              "rows": 1,
              "filtered": 100
            }
          },
          {
            "table": {
              "table_name": "products",
              "access_type": "index_merge",
              "possible_keys": ["PRIMARY", "status", "idx_parent_product_id"],
              "key_length": "4,3",
              "index_merge": {
                "intersect": [
                  {
                    "range": {
                      "key": "idx_parent_product_id",
                      "used_key_parts": ["parent_product_id"]
                    }
                  },
                  {
                    "range": {
                      "key": "status",
                      "used_key_parts": ["status"]
                    }
                  }
                ]
              },
              "rows": 4670,
              "filtered": 100,
              "attached_condition": "products.company_id = 793 and products.parent_product_id = 0 and (products.amount > 0 or products.tracking = 'D') and (products.usergroup_ids = '' or find_in_set(0,products.usergroup_ids) or find_in_set(1,products.usergroup_ids)) and products.`status` = 'A'"
            }
          },
          {
            "table": {
              "table_name": "descr1",
              "access_type": "eq_ref",
              "possible_keys": ["PRIMARY", "product_id"],
              "key": "PRIMARY",
              "key_length": "11",
              "used_key_parts": ["product_id", "lang_code"],
              "ref": ["dev_db.products.product_id", "const"],
              "rows": 1,
              "filtered": 100,
              "attached_condition": "trigcond(descr1.lang_code = 'vi')"
            }
          },
          {
            "table": {
              "table_name": "cscart_product_review_prepared_data",
              "access_type": "eq_ref",
              "possible_keys": ["PRIMARY"],
              "key": "PRIMARY",
              "key_length": "7",
              "used_key_parts": ["product_id", "storefront_id"],
              "ref": ["dev_db.products.product_id", "const"],
              "rows": 1,
              "filtered": 100
            }
          },
          {
            "table": {
              "table_name": "popularity",
              "access_type": "eq_ref",
              "possible_keys": ["PRIMARY", "total"],
              "key": "PRIMARY",
              "key_length": "3",
              "used_key_parts": ["product_id"],
              "ref": ["dev_db.products.product_id"],
              "rows": 1,
              "filtered": 100
            }
          },
          {
            "table": {
              "table_name": "prices",
              "access_type": "ref",
              "possible_keys": [
                "usergroup",
                "product_id",
                "lower_limit",
                "usergroup_id"
              ],
              "key": "product_id",
              "key_length": "3",
              "used_key_parts": ["product_id"],
              "ref": ["dev_db.products.product_id"],
              "rows": 1,
              "filtered": 99.9960556,
              "attached_condition": "prices.lower_limit = 1 and prices.usergroup_id in (0,0,1)"
            }
          },
          {
            "table": {
              "table_name": "products_categories",
              "access_type": "ref",
              "possible_keys": ["PRIMARY", "pt"],
              "key": "pt",
              "key_length": "3",
              "used_key_parts": ["product_id"],
              "ref": ["dev_db.products.product_id"],
              "rows": 1,
              "filtered": 100
            }
          },
          {
            "table": {
              "table_name": "cscart_categories",
              "access_type": "eq_ref",
              "possible_keys": ["PRIMARY", "p_category_id"],
              "key": "PRIMARY",
              "key_length": "3",
              "used_key_parts": ["category_id"],
              "ref": ["dev_db.products_categories.category_id"],
              "rows": 1,
              "filtered": 100,
              "using_index": true
            }
          }
        ]
      }
    }
  }
}

Result

product_id product company_name product_type parent_product_id average_rating product_reviews_count
47197 Bộ Chữ Cái Tiếng Anh Bằng Gỗ, Đồ Chơi Giáo Dục, Đồ Chơi Thủ Công, Bộ Chữ Cái Rõ Nét, Bảng Chữ Cái Bằng Gỗ, An Toàn Cho Trẻ Nhỏ Tân Mộc P 0 5.00 4
47199 Bộ Khối Gỗ Xếp Chồng Tumi Ishi Ver 1, Game Kích Thích Sáng Tạo, Phát Triển Tư Duy, Rèn Luyện Tính Kiên Trì, Đồ Chơi Giáo Dục Tân Mộc P 0
47200 Bộ Đồ Chơi Thăng Bằng Hình Mặt Trăng Bằng Gỗ, Bộ Đồ Chơi Thủ Công, Đồ Chơi Gỗ Luyện Tay, Phát Triển Tư Duy, Gỗ An Toàn Cho Bé Tân Mộc P 0
47195 Bộ Đồ Chơi Hình Núi Bằng Gỗ Mộc Size Lớn, Chất Liệu Gỗ Tự Nhiên, Đồ Chơi Cho Trẻ, Kích Thích Sự Sáng Tạo, Đồ Chơi Chất Lượng Cao Tân Mộc P 0
47198 Cloud Shaped Wooden Numbers Set, Intellectual Toy, Stimulates Thinking, Unique Toy Set, Smart Wooden Toy Tân Mộc P 0 0
47201 Bộ Đồ Chơi Cầu Vồng Montessori Bằng Gỗ, Đồ Chơi Cho Trẻ, Bộ Xếp Hình Bằng Gỗ, Kích Thích Trí Tưởng Tượng, Hỗ Trợ Phát Triển Logic Tân Mộc P 0
47196 Bộ Đồ Chơi Gỗ Luồn Dây Hình Thú, Đồ Chơi Cho Bé, Rèn Luyện Nhận Thức, Hình Thú Dễ Thương, Chế Tác Từ Gỗ, An Toàn Cho Bé Tân Mộc P 0
48757 Bộ Hình Khối Xây Dựng Bằng Gỗ, Đồ Chơi Giáo Dục, Đồ Chơi Học Tập, Đồ Chơi Thủ Công, Gỗ Tự Nhiên, Quà Tặng Cho Trẻ, Đồ Chơi Giúp Phát Triển Trí Tuệ Tân Mộc P 0 5.00 1
48758 Bộ Xếp Khối Vuông, Tròn, Tam Giác, Đồ Chơi Giáo Dục, Đồ Chơi Học Tập, Thủ Công, Gỗ Tự Nhiên, Quà Tặng Cho Trẻ, Chất Liệu An Toàn, Giúp Trẻ Nhận Biết Hình Khối Tân Mộc P 0
48674 Bộ Học Số Montessori Bằng Gỗ, Đồ Chơi Giáo Dục, Đồ Chơi Học Tập, Đồ Chơi Bằng Gỗ, Đồ Chơi Giúp Trẻ Nhận Biết Số Tân Mộc P 0
48755 Bảng Cát Bằng Gỗ, Đồ Chơi Giáo Dục, Đồ Chơi Học Tập, Khe Cát Thủ Công, Khe Cắm Thẻ Học, Gỗ Tự Nhiên, Quà Tặng Cho Trẻ, Chất Liệu An Toàn Tân Mộc P 0 0
48756 Đồ Chơi Xếp Gỗ Hình Dưa Hấu, Đồ Chơi Giáo Dục, Montessori, Thủ Công, Đồ Chơi Bằng Gỗ, Quà Tặng Cho Trẻ, Quà Tặng Giúp Kích Thích Tư Duy Tân Mộc P 0