У меня есть таблица MySql со следующей схемой.Есть ли способ оптимизировать этот запрос MYSQL
table_products - "product_id", product_name, product_description, product_image_path, brand_id
table_product_varient - "product_id", "varient_id", product_mrp, product_sellprice, product_imageurl
table_varients - "varient_id", varient_name
table_product_categories - "product_id", "category_id"
и это Mysql select
запрос я использую для извлечения данных для предоставленного пользователем категории.
select * from table_products, table_product_varients, table_varients, table_product_categories where table_product_categories.category_id = '$cate_id' && table_product_categories.product_id = table_products.product_id && table_products.product_id = table_product_varients.product_id && table_varients.varient_id = table_product_varients.varient_id
Проблема заключается в том, что, как таблица содержит много продуктов, и каждый продукт содержит много varients, это занимает слишком много времени для извлечения данных. И я сомневаюсь, что по мере того, как данные будут расти, время будет увеличиваться для извлечения элементов. Есть ли оптимизированный способ добиться того же.
Ваша помощь будет высоко оценена.
Devesh
Вы действительно используете '&&' вместо' AND'? –
Вам действительно нужно достать все предметы? Почему бы просто не использовать «ограничение» в запросе и «пейджинг» в системе? И действительно ли вам нужно получить все поля (вы используете * в запросе) - вы можете указать, какие поля получить, чтобы он извлекал меньше полей (он значительно увеличит скорость) –
@Christian Да, я использую &&. Есть ли разница между && и AND. –