У меня есть страница с простыми запросами sql:
Посетитель на странице 940, поэтому мне нужно найти продукты, которые будут показаны на этой странице:
SELECT *
FROM items
WHERE stock = 1 AND hide = 0
ORDER BY id DESC
LIMIT 36
OFFSET 33804
этот запрос занимает 15463.242 ms
.
Также мне нужно показать фильтр с указанием производителей, размеров и информации о магазине для всех товаров на складе:
SELECT MANUFACTURER, sizes, store
FROM items
WHERE stock = 1 AND hide = 0
Это займет 17996.684 ms
.
Я непонять, почему это занимает так много времени.
Структура таблицы:
id int(11) Auto Increment
ID_PRODUCT varchar(200)
PRODUCT varchar(200)
DESCRIPTION mediumtext
URL varchar(300)
PRICE_VAT int(7)
MANUFACTURER varchar(150)
CATEGORY varchar(150)
IMGSURL varchar(3000)
catids varchar(30)
sizes varchar(30)
store varchar(30)
stock int(1)
hide int(1)
Информация о таблице:
Data size: 327 974 912
Index size: 12 075 008
Free space: 4 194 304
Rows: 310 823
Используется InnoDB и mysql 5.5.5-10.0.29-MariaDB-0 + deb8u1.
Подскажите, пожалуйста, что не так с этими запросами?Посетители не могут ждать более 30 секунд.Кроме того, процессор делает более 100% при выполнении запроса.