|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Здраствуйте, прошу помощи с оптимизацией запроса. Я не знаю можно ли его с оптимизировать или нет, по этому и обращаюсь к знатокам Итак сам запрос, Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Выполняется он 49438.5 ms По данным таблица links - 400-450 тыс. записей Индексы на полях market_name hash_url scale brand price таблица markets - около 100 записей Индексы на полях idmarkets Таблица seo_data - 400-450 тыс. записей hash_item Данные из неё не используются, используется для фильтрации лишнего его EXPLAIN id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range price_fx price_fx 138 179977 Using index condition; Using filesort 1 SIMPLE t2 eq_ref PRIMARY,fx_markets_id PRIMARY 4 links.t1.market_name 1 Using where Вопрос, можно ли как-то ускорить, если да то как? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 10:28 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Nick-name, Покажите DDL таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 10:54 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Nick-name Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 11:05 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Gluck99 Nick-name Код: sql 1.
[/src] Пардон это рудимент сейчас вот так Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 11:21 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
miksoft Nick-name, Покажите DDL таблиц. Что вы имеете ввиду? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 11:27 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Nick-name miksoft Nick-name, Покажите DDL таблиц. Что вы имеете ввиду? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 11:28 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
miksoft, links Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
seo_data Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
markets Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 11:55 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Nick-name Таблица seo_data - 400-450 тыс. записей hash_item Данные из неё не используются, используется для фильтрации лишнего Значит, сразу переписывайте как Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 12:13 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Ещё бы неплохо колонку price перевести в числа .. ну и все же Explain к старому и новому запросу глянуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 20:32 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Arhat109, explain нового запроса выглядит так 1 PRIMARY t1 range hash_url_fx,price_fx hash_url_fx 768 194239 Using index condition; Using where; Using filesort 1 PRIMARY t2 eq_ref PRIMARY,fx_markets_id PRIMARY 4 links.t1.market_name 1 Using where 1 PRIMARY t3 eq_ref fx_unique,fx_hash fx_unique 767 links.t1.hash_url 1 Using index но быстрее не стало ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 21:10 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
что-то подобное и ожидал. BETWEEN по текстовому полю .. круто конечно, но 450тыщ записей .. ожидаемо. пока не переведете price в число, думаю лучше не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 22:49 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Arhat109 BETWEEN по текстовому полю ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 22:52 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Arhat109 что-то подобное и ожидал. BETWEEN по текстовому полю .. круто конечно, но 450тыщ записей .. ожидаемо. пока не переведете price в число, думаю лучше не будет. Тогда нужен еще совет, дело в том, что прайс бывает с копейками. Я вижу три варианта 1) просто отбрасывать копейки 2) перевести во float 3) переводить цену в копейки и хранить в копейках Что посоветуете? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 22:55 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Преобразовать из VARCHAR в DECIMAL. Скажем, DECIMAL(11,2). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 23:01 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Akina, можно и точнее и толще (в смысле больше разрядов в 64 бита) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 23:11 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Arhat109 Akina, можно и точнее и толще (в смысле больше разрядов в 64 бита) В смысле в DECIMAL или в копейки? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 23:29 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Arhat109 , можно. 64 бита - это либо DECIMAL(18,0), либо DECIMAL(17, 8). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2020, 11:14 |
|
mysql Нужна помощь с оптимизацией запроса
|
|||
---|---|---|---|
#18+
Akina 64 бита - это либо DECIMAL(18,0), либо DECIMAL(17, 8). Но это и не важно, в данной задаче нет какого-то специального смысла заполнить именно 64 бита. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2020, 16:04 |
|
|
start [/forum/topic.php?fid=47&msg=40024498&tid=1828282]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 135ms |
0 / 0 |