|
|
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 19:21:22 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
И? Что именно не так? Что нужно сделать? Где подробности - способ запуска, текущее время выполнения, желаемое время выполнения, план запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 19:23:50 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
И, кстати, значем у аэропорта привязка к стране, если уже есть привязка к городу, который сам привязан к стране? Аэропорт и его город могут быть в разных странах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 19:25:27 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
miksoft, ест 4 таблицы приблизительно 10.000 строк . FROM jos_ws_country AS A LEFT JOIN jos_ws_city AS B ON (A.id = B.country_id) LEFT JOIN jos_ws_airport AS C ON (C.country_id = A.id AND C.city_id = B.id) тут все нормально . а 4-ая таблица идет по строкам но надо чтобы бил как калонка и делаю CREATE VIEW SALPERKS AS SELECT A.id as id,C.city_id as city_id, A.iso_code AS AA ,B.iata_code AS AB, C.iata_code AS AC, D.`translate` as countryEN, E.`translate` as countryRU , F.`translate` as cityEN, G.`translate` as cityRU, H.`translate` as airportEN, K.`translate` as airportRU LEFT JOIN jos_ws_translate AS D ON(D.key = A.iso_code AND D.language = 1 ) LEFT JOIN jos_ws_translate AS E ON(E.key = A.iso_code AND E.language = 2 ) вид создается нормально а вот когда делаю запрос скажем SELECT count(id) FROM SALPERKS 1. в течения 5 минут не отвечает на мои запрос 2. mySql вырубается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 19:38:29 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
miksoft, для таго чтоби получить 1 . все аэропорта которые принадлежит этому страну 2 . все аэропорта которые принадлежит этому горду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 19:45:10 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
boyboy61, А индексы какие сделаны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 19:46:38 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
boyboy61 1 . все аэропорта которые принадлежит этому странуДля этого нет необходимости держать отдельную связь между аэропортом и страной, т.к. они уже связаны через города. Впрочем, если у вас есть возможность контролировать непротиворечивость этих связей, то сойдет и так. Это не отменяет вопроса про план запроса и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 19:49:23 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
Cygapb-007boyboy61, А индексы какие сделаны? думаю что вот и самый главный вопрос . как сделать индексы. jos_ws_translate все текстовые поля кроме id уникальный ключ . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 19:52:14 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
Первое, что бросается в глаза, нужен индекс jos_ws_translate (key) или jos_ws_translate (key,language). Еще нужны индексы jos_ws_city (country_id) и jos_ws_airport (country_id, C.city_id). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 19:58:37 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
miksoftboyboy61 1 . все аэропорта которые принадлежит этому странуДля этого нет необходимости держать отдельную связь между аэропортом и страной, т.к. они уже связаны через города. Впрочем, если у вас есть возможность контролировать непротиворечивость этих связей, то сойдет и так. Это не отменяет вопроса про план запроса и т.п. я с Вами согласен но дело в том что надо LIKE '%xxx' и этот xxx может быть один из таблиц и надо отдать всю информацию страна горд аеропорт но может быть только одном из таблиц опять надо отдать всю информацию страна горд аеропорт , ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 20:05:52 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
miksoft, да тут jos_ws_airport (country_id, C.city_id) у меня индеь не стоит щас поставлю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 20:08:19 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
boyboy61я с Вами согласен но дело в том что надо LIKE '%xxx'Зачем??? Для "все аэропорта которые принадлежит этому страну" вам сгодится уже имеющийся запрос, только лишнее выкинуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 20:08:47 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
На таблицу jos_ws_translate нужен индекс по 3 полям (по 3 – чтобы вообще исключить обращение к таблице, если, конечно, MySQL это умеет – тут я хз:), если не умеет – по первым двум полям) — jos_ws_translate(key,language,translate) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 20:11:38 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
miksoftboyboy61я с Вами согласен но дело в том что надо LIKE '%xxx'Зачем??? Для "все аэропорта которые принадлежит этому страну" вам сгодится уже имеющийся запрос, только лишнее выкинуть. то что создается в VIEW A.id as id,C.city_id as city_id, A.iso_code AS AA ,B.iata_code AS AB, C.iata_code AS AC, D.`translate` as countryEN, E.`translate` as countryRU , F.`translate` as cityEN, G.`translate` as cityRU, H.`translate` as airportEN, K.`translate` as airportRU все нужен куда выкинуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 20:12:46 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
boyboy61jos_ws_translate все текстовые поля кроме id уникальный ключ .Если строки в key достаточно длинные, можно попробовать добавить поле crc_key UNSIGNED, записать в него CRC32 (key) и включить его в индекс: (language,crc_key,key). Тогда условие в join, например, такое: Код: sql 1. 2. 3. 4. Такой прием обеспечивает существенное увеличение скорости поиска за счет быстрого целочисленного поиска по индексу; «длительное посимвольное» сравнение строк выполняется только при совпадении crc. У разных строк может быть одинаковый crc, поэтому посимвольное сравнение все же необходимо. Чем длиннее строки, тем прием эффективнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 22:15:48 |
|
||
|
Помогите оптимизировать запрос, плз!
|
|||
|---|---|---|---|
|
#18+
ooooooooooo наперед спасибо поставил грамотние индексы и все ОК . пока . :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 15:04:38 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38364470&tid=1836257]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 371ms |

| 0 / 0 |
