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 cscart_categories.category_id IN (118) 
  AND products.product_id NOT IN (0) 
  AND companies.status IN ('A') 
  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.parent_product_id = 0 
GROUP BY 
  products.product_id 
ORDER BY 
  popularity.total desc, 
  products.product_id ASC 
LIMIT 
  96, 32

Query time 0.02219

JSON explain

{
  "query_block": {
    "select_id": 1,
    "filesort": {
      "sort_key": "popularity.total desc, products.product_id",
      "temporary_table": {
        "nested_loop": [
          {
            "table": {
              "table_name": "cscart_categories",
              "access_type": "const",
              "possible_keys": ["PRIMARY", "p_category_id"],
              "key": "PRIMARY",
              "key_length": "3",
              "used_key_parts": ["category_id"],
              "ref": ["const"],
              "rows": 1,
              "filtered": 100,
              "using_index": true
            }
          },
          {
            "table": {
              "table_name": "products_categories",
              "access_type": "range",
              "possible_keys": ["PRIMARY", "pt"],
              "key": "PRIMARY",
              "key_length": "6",
              "used_key_parts": ["category_id", "product_id"],
              "rows": 173,
              "filtered": 100,
              "attached_condition": "products_categories.category_id = 118 and products_categories.product_id <> 0",
              "using_index": true
            }
          },
          {
            "table": {
              "table_name": "products",
              "access_type": "eq_ref",
              "possible_keys": ["PRIMARY", "status", "idx_parent_product_id"],
              "key": "PRIMARY",
              "key_length": "3",
              "used_key_parts": ["product_id"],
              "ref": ["dev_db.products_categories.product_id"],
              "rows": 1,
              "filtered": 18.54700279,
              "attached_condition": "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": "companies",
              "access_type": "eq_ref",
              "possible_keys": ["PRIMARY"],
              "key": "PRIMARY",
              "key_length": "4",
              "used_key_parts": ["company_id"],
              "ref": ["dev_db.products.company_id"],
              "rows": 1,
              "filtered": 100,
              "attached_condition": "companies.`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_categories.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_categories.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_categories.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_categories.product_id"],
              "rows": 1,
              "filtered": 99.9960556,
              "attached_condition": "prices.lower_limit = 1 and prices.usergroup_id in (0,0,1)"
            }
          }
        ]
      }
    }
  }
}

Result

product_id product company_name product_type parent_product_id average_rating product_reviews_count
26868 Tinh Nghệ Canxi, Tinh Bột Nghệ Nguyên Chất, Giảm Viêm Loét Dạ Dày, Bột Nghệ Uống Liền, Thức Uống Bổ Sung Canxi Honimore P 0 0
46144 Tương Ớt Cho Bé Từ Ớt Chuông Thơm Ngọt, Tương Ớt Bổ Sung Rau Củ, Ớt Lên Men, Hương Vị Truyền Thống, Bổ Dưỡng SPICO P 0
44931 Tương Ớt 712g, Tương Ớt Tỏi, Tương Ớt Lên Men, Món Cay, Không Chất Tạo Màu Chilica P 0
6165 Tiêu Đỏ Hữu Cơ, Gia Vị, Nguyên Liệu Hữu Cơ, Hương Vị Việt, Chất Lượng Cao, Nguyên Liệu Nấu Ăn Vina Samex P 0
28238 Muối Biển Cao Cấp Kèm Cối Xay, Muối Thô Hạt To, Muối Hạt Súc Miệng, Tốt Cho Tim Mạch, Muối Biển Nguyên Chất SAHU P 0
26867 Tinh Nghệ Nếp Vàng, Tinh Nghệ Nguyên Chất, Thành Phần Tự Nhiên, Chăm Sóc Sức Khỏe, Tăng Sức Đề Kháng Honimore P 0
46142 Tương Ớt Phúc Lộc Thọ Truyền Thống, Vị Siêu Cay, Ớt Lên Men, Hương Vị Truyền Thống, Không Chất Bảo Quản, Không Chất Điều Vị SPICO P 0
46145 Tương Ớt Chay An Nhiên Không Tỏi, Ớt Lên Men, Hương Vị Truyền Thống, Nông Sản Việt, Ẩm Thực Chay SPICO P 0
44930 Tương Ớt 482g, Tương Ớt Tỏi, Tương Ớt Lên Men, Món Cay, Không Chất Tạo Màu Chilica P 0 5.00 2
46148 Tương Ớt Truyền Thống Sriracha, Ớt Lên Men, Hương Vị Truyền Thống, Nguyên Liệu Hữu Cơ, Không Chất Bảo Quản SPICO P 0
6148 Combo 5 Loại Bơ Hạt Happi Oha, Bơ Hạt Không Đường, Bơ Hạt Dinh Dưỡng, Hợp Với Người Ăn Chay, Bơ Ăn Kèm Bánh Mì Happi Oha P 0
47898 Tương Ớt Siêu Cay CAY NHƯ QUỶ Cấp Độ 2 - Love & Spice LOVE & SPICE P 0 0
46149 Sa Tế Ớt Tỏi Chưng Dầu Đậu Phộng, Gia Vị Cay Thơm, Gia Vị Ướp Thịt Nướng, Xốt Ướp Bbq, Sa Tế Trộn Bánh Tráng SPICO P 0
41952 Hoa Tiêu, Gia Vị Nấu Ăn, Tiêu Tứ Xuyên, Xuyên Tiêu Nguyên Chất, Hoa Tiêu Kèm Lọ Xay, Gia Vị Cay Tê Lưỡi, Đánh Thức Vị Giác The Hồ Tiêu P 0 5.00 1
46147 Tương Ớt Đình Hương Chuẩn Vị Bắc, Tương Ăn Phở, Không Chất Bảo Quản, Không Phụ Gia Nhân Tạo, An Toàn Sức Khỏe SPICO P 0
47165 Cặp 2 Chai Nước Mắm Tĩn Rin Nhãn Đỏ Độ Đạm 40N, Nước Mắm Cá Cơm, Nước Mắm Nguyên Chất, Ẩm Thực Việt, Đặc Sản Việt, Hương Vị Truyền Thống Nước Mắm Tĩn P 0
47166 Nước Mắm Tĩn Rin Nhãn Xưa Độ Đạm 41N, Nước Mắm Cá Cơm, Nước Mắm Nguyên Chất, Ẩm Thực Việt, Hương Vị Truyền Thống, Quà Biếu Nước Mắm Tĩn P 0
47897 Tương Ớt Siêu Cay CAY QUÁ ĐÃ Cấp Độ 1 - Love & Spice LOVE & SPICE P 0 0
41955 Muối Tre Cao Cấp Rang 1 Lần, Kèm Lọ Xay Tiêu The Hồ Tiêu P 0 5.00 1
47167 Nước Mắm Tĩn Rin Cho Bé Ăn Dặm, Độ Đạm 42N, Nước Mắm Cá Cơm Than, Nhiều Cá Ít Muối, Ẩm Thực Việt, Nhiều Đạm Cho Bé Nước Mắm Tĩn P 0
47668 [Tặng 1 Bình Rót] Hộp Quà Đậm Đà Tinh Thân Với Hai Loại Nước Mắm Tĩn Nước Mắm Tĩn P 0
46146 Tương Cà Chua, Tương Cà Cô Đặc, Hương Vị Truyền Thống, Không Chất Bảo Quản, Không Hương Liệu SPICO P 0
43662 Sốt Tương Ngâm Tamari Cho Rau, Củ, Quả, Sốt Tamari, Thành Phần An Toàn, Công Thức Nấu Ăn, Thuần Chay Lá Chay P 0
41954 Đại Hồi, Gia Vị Nấu Cà Ri, Đại Hồi Nguyên Chất, Hoa Hồi Thiên Nhiên, Hồi Khô Nấu Phở, Đại Hồi Thả Lẩu, Hoa Hồi Nguyên Cánh The Hồ Tiêu P 0 5.00 1
47664 [Tặng 1 Bình Rót] Cặp 2 Chai Nước Mắm Tôm Biển 45N, Chai Hồng Ngọc Đại Dương Nguyên Chất Nước Mắm Tĩn P 0
47168 Cặp 2 Chai Nước Mắm Tĩn Rin Cho Bé Ăn Dặm, Độ Đạm 42N, Nước Mắm Cá Cơm Than, Nhiều Cá Ít Muối, Ẩm Thực Việt, Nhiều Đạm Cho Bé Nước Mắm Tĩn P 0
47665 [Tặng 1 Bình Rót] Cặp 2 Chai Nước Mắm Tĩn Cá Cơm Vàng Ruột Đỏ 60N Nước Mắm Tĩn P 0
49394 Sa Tế Me Chua Ngọt, Sa Tế MÙA, Mang Hương Vị Miền Trung Vào Gian Bếp, Nguyên Liệu Tự Nhiên, Sản Xuất Bởi Những Người Nông Dân Hội An Mùa Craft Sake P 0 0
41953 Thảo Quả Đỏ, Gia Vị Hữu Cơ, Gia Vị Nêm Súp, Thảo Quả Hầm Thịt, Thảo Quả Đỏ Sấy Khô, Giảm Trào Ngược Dạ Dày The Hồ Tiêu P 0 5.00 1
47667 [Tặng 1 Bình Rót] Cặp 2 Bình Nước Mắm Tĩn Tôm Biển 60N, Bình Thơm Ngon Hảo Hạng Nước Mắm Tĩn P 0
16567 Set 3 Chai (2 Chai Cùng Vị, 1 Chai Khác Vị) Tương Ớt Xông Khói Saigon Charlie's P 0 0
41956 Muối Và Tiêu Đen Rang, Kèm Lọ Xay Tiêu The Hồ Tiêu P 0 5.00 1