|
|
|
Помогите с оптимизацией запросов
|
|||
|---|---|---|---|
|
#18+
Добрый день, коллеги! Есть несколько запросов, которые работают совершенно неоптимально. 1. SELECT *,ps.price as special,p.price as price,pd.name,pd.brief,p.product_id,p.image FROM product_special ps LEFT JOIN product p ON p.product_id = ps.product_id LEFT JOIN product_description pd ON p.product_id = pd.product_id USE INDEX( idx ) WHERE ( DATE(NOW())BETWEEN ps.date_start AND ps.date_end ) AND p.quantity > 0 - результаты explain: читаются все строки, using where 2. SELECT *,p.main_category_id as category_id, count(*) as counter,op.product_id FROM order_product op LEFT JOIN product p ON op.product_id = p.product_id LEFT JOIN product_description pd ON op.product_id = pd.product_id GROUP BY op.product_id HAVING p.quantity > 0 AND category_id = '85' ORDER BY counter DESC LIMIT 1 - результат explain: читаются все данные таблицы, using temporary, using filesort. Индексы по всем полям, участвующим в условиях, созданы. Рад любой помощи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2013, 23:32:08 |
|
||
|
Помогите с оптимизацией запросов
|
|||
|---|---|---|---|
|
#18+
Ginza9, осталось посмотреть планы, чтобы убедиться, что индексы используются... А также понять - а нужны ли они... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2013, 23:48:03 |
|
||
|
Помогите с оптимизацией запросов
|
|||
|---|---|---|---|
|
#18+
оу, ты так классно оформил сообщение, что я и не сразу заметил примечания о результатах эксплейна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2013, 23:50:22 |
|
||
|
Помогите с оптимизацией запросов
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх, как посмотреть план? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2013, 23:50:31 |
|
||
|
Помогите с оптимизацией запросов
|
|||
|---|---|---|---|
|
#18+
Ginza9Добрый Э - Эх, как посмотреть план? поставьте слово EXPLAIN перед запросом и читать, например, тут: http://xpoint.ru/know-how/MySQL/Optimizatsiya/Indeksyi#EXPLAINSELECT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 00:10:46 |
|
||
|
Помогите с оптимизацией запросов
|
|||
|---|---|---|---|
|
#18+
Изучаю сейчас запросы с помощью программы Neor Profile SQL. Все равно пока не удается победить их. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 00:27:58 |
|
||
|
Помогите с оптимизацией запросов
|
|||
|---|---|---|---|
|
#18+
Ginza9, Дебилы запросы писали. Сначала приведи все к нормальному ввиду, потом уже будешь думать о оптимизации. Хинты все тоже убрать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 10:17:16 |
|
||
|
Помогите с оптимизацией запросов
|
|||
|---|---|---|---|
|
#18+
Ginza9Добрый день, коллеги! Есть несколько запросов, которые работают совершенно неоптимально. 1. Код: sql 1. 2. 3. 4. 5. 6. - результаты explain: читаются все строки, using where 2. Код: sql 1. 2. 3. 4. 5. 6. 7. - результат explain: читаются все данные таблицы, using temporary, using filesort. Индексы по всем полям, участвующим в условиях, созданы. Рад любой помощи. 1 - условие p.quantity > 0 делает из LEFT JOIN product p - inner и это - SELECT *,ps.price ... - "за гранью понимания" - ВЫБРАТЬ ВСЁ+кое-что выбрать 2-а раза ... 2 то же самое, что и 1. про условия в HAVING, и не нужен тут HAVING - условия перенеси в WHERE нуу и SELECT * при GROUP BY op.product_id - плохо характеризует ТС ... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 10:31:35 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38354179&tid=1836323]: |
0ms |
get settings: |
7ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 380ms |

| 0 / 0 |
