|
|
|
| Есть две таблицы
Таблица товаров(product) и картинок к товарам (product_image)
Таблица: товаров
CREATE TABLE IF NOT EXISTS `product` (
`id_product` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`price` float(8,2) NOT NULL,
PRIMARY KEY (`id_product`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
Таблица: каринок
СREATE TABLE IF NOT EXISTS `product_image` (
`id_image` int(11) NOT NULL AUTO_INCREMENT,
`alt` varchar(255) NOT NULL,
`photo` varchar(255) NOT NULL,
`photo_small` varchar(255) NOT NULL,
`image_pos` int(11) NOT NULL,
`id_product` int(255) NOT NULL,
PRIMARY KEY (`id_image`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
Задача: Необходимо показвать товар и картинку для товара( в поле значение image_pos с наимнньшей позицие для конкретного товара), если у товара картинка нет, то
--product_image.photo_small возврашает NULL
SELECT shop_product.id_product,
product.name,
product.price,
product_image.photo_small
FROM shop_product
LEFT JOIN product_image ON product.id_product=product_image.id_product
WHERE (image_pos=(SELECT Min(image_pos) FROM product_image WHERE product_image.id_product=product.id_product) OR product_image.id_image IS NULL)
ORDER BY price ASC
|
--Проблема: при товаров от 500 товаров начитает медлено выполняться запрос, помогите его оптимизировать | |
|
|
|
|
|
|
|
для: sanekdi
(12.11.2011 в 09:52)
| | поля проиндексированны? | |
|
|
|
|
|
|
|
для: Valick
(12.11.2011 в 10:50)
| | image_pos для таблицы картинок нет, или какие то другие поля? | |
|
|
|
|
|
|
|
для: sanekdi
(12.11.2011 в 10:54)
| | product_image.id_product поставил индекс вроде стало лучше, вы имели это поле? | |
|
|
|
|
|
|
|
для: sanekdi
(12.11.2011 в 11:14)
| | ну да, потому как примари кей и так проиндексированы
просто мало времени и поэтому пока не вник в проблему поглубже
кстати `id_product` в картинках тоже наверно не мешало бы | |
|
|
|
|
|
|
|
для: sanekdi
(12.11.2011 в 11:14)
| | После индексации, выполните оператор EXPLAIN в отношении этого запроса, чтобы посмотреть подцепились ли индексы. | |
|
|
|