ReMaRk
Новичок
ресурсоемкий запрос
Есть две таблицы: в одной хранятся описания товаров, в другой предметный указатель...
CREATE TABLE good(
goodid INT(4) UNSIGNED PRIMARY KEY AUTO_INCREMENT,
description CHAR(255),
mu CHAR(16),
price CHAR(16),
company CHAR(64),
phone CHAR(32),
INDEX (description(16))
);
CREATE TABLE word(
wordid INT(4) UNSIGNED PRIMARY KEY AUTO_INCREMENT,
word CHAR(64),
INDEX (word(16))
);
например в первой таблице может в поле "description" может храниться "Аксессуары для жидких обоев", а во второй в поле "word" - слово "аксессуар".
в первой тиблице строк порядка 3-4 тысяч, во второй 1600 строк...
запрос типа:
SELECT a.catalogid, a.description, a.measurement, a.price, a.company, a.phone, IFNULL(b.word, '') AS keyword
FROM catalog.work AS a LEFT JOIN catalog.word AS b ON (a.description LIKE CONCAT(b.word, '%'))
GROUP BY a.catalogid
ORDER BY a.description
выполняется порядка 30 сек. что очень долго. Знаю что join очень ресурсоемкая операция... как можно было бы оптимизировать этот запрос???
Есть две таблицы: в одной хранятся описания товаров, в другой предметный указатель...
CREATE TABLE good(
goodid INT(4) UNSIGNED PRIMARY KEY AUTO_INCREMENT,
description CHAR(255),
mu CHAR(16),
price CHAR(16),
company CHAR(64),
phone CHAR(32),
INDEX (description(16))
);
CREATE TABLE word(
wordid INT(4) UNSIGNED PRIMARY KEY AUTO_INCREMENT,
word CHAR(64),
INDEX (word(16))
);
например в первой таблице может в поле "description" может храниться "Аксессуары для жидких обоев", а во второй в поле "word" - слово "аксессуар".
в первой тиблице строк порядка 3-4 тысяч, во второй 1600 строк...
запрос типа:
SELECT a.catalogid, a.description, a.measurement, a.price, a.company, a.phone, IFNULL(b.word, '') AS keyword
FROM catalog.work AS a LEFT JOIN catalog.word AS b ON (a.description LIKE CONCAT(b.word, '%'))
GROUP BY a.catalogid
ORDER BY a.description
выполняется порядка 30 сек. что очень долго. Знаю что join очень ресурсоемкая операция... как можно было бы оптимизировать этот запрос???