powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите оптимизировать запрос, плз!
17 сообщений из 17, страница 1 из 1
Помогите оптимизировать запрос, плз!
    #38361540
boyboy61
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
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
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) 
	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 )
	LEFT JOIN jos_ws_translate AS F
		 ON(F.key = B.iata_code AND F.language = 1 )
	LEFT JOIN jos_ws_translate AS G
		 ON(G.key = B.iata_code AND G.language = 2 )
	LEFT JOIN jos_ws_translate AS H
		 ON(H.key = C.iata_code AND H.language = 1 )
	LEFT JOIN jos_ws_translate AS K
		 ON(K.key = C.iata_code AND K.language = 2 )
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361542
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И? Что именно не так? Что нужно сделать?
Где подробности - способ запуска, текущее время выполнения, желаемое время выполнения, план запроса?
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361543
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И, кстати, значем у аэропорта привязка к стране, если уже есть привязка к городу, который сам привязан к стране? Аэропорт и его город могут быть в разных странах?
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361554
boyboy61
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 вырубается
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361556
boyboy61
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

для таго чтоби получить
1 . все аэропорта которые принадлежит этому страну
2 . все аэропорта которые принадлежит этому горду
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361557
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boyboy61,

А индексы какие сделаны?
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361559
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boyboy61 1 . все аэропорта которые принадлежит этому странуДля этого нет необходимости держать отдельную связь между аэропортом и страной, т.к. они уже связаны через города.
Впрочем, если у вас есть возможность контролировать непротиворечивость этих связей, то сойдет и так.

Это не отменяет вопроса про план запроса и т.п.
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361561
boyboy61
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cygapb-007boyboy61,

А индексы какие сделаны?
думаю что вот и самый главный вопрос .
как сделать индексы.
jos_ws_translate все текстовые поля кроме id уникальный ключ .
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361566
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первое, что бросается в глаза, нужен индекс jos_ws_translate (key) или jos_ws_translate (key,language). Еще нужны индексы jos_ws_city (country_id) и jos_ws_airport (country_id, C.city_id).
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361571
boyboy61
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftboyboy61 1 . все аэропорта которые принадлежит этому странуДля этого нет необходимости держать отдельную связь между аэропортом и страной, т.к. они уже связаны через города.
Впрочем, если у вас есть возможность контролировать непротиворечивость этих связей, то сойдет и так.

Это не отменяет вопроса про план запроса и т.п.

я с Вами согласен но дело в том что надо LIKE '%xxx'
и этот xxx может быть один из таблиц и надо отдать всю информацию страна горд аеропорт
но может быть только одном из таблиц опять надо отдать всю информацию страна горд аеропорт ,
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361573
boyboy61
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
да тут jos_ws_airport (country_id, C.city_id) у меня индеь не стоит щас поставлю.
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361574
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boyboy61я с Вами согласен но дело в том что надо LIKE '%xxx'Зачем??? Для "все аэропорта которые принадлежит этому страну" вам сгодится уже имеющийся запрос, только лишнее выкинуть.
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361575
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На таблицу jos_ws_translate нужен индекс по 3 полям (по 3 – чтобы вообще исключить обращение к таблице, если, конечно, MySQL это умеет – тут я хз:), если не умеет – по первым двум полям) — jos_ws_translate(key,language,translate)
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361576
boyboy61
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
все нужен куда выкинуть.
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38361628
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boyboy61jos_ws_translate все текстовые поля кроме id уникальный ключ .Если строки в key достаточно длинные, можно попробовать добавить поле crc_key UNSIGNED, записать в него CRC32 (key) и включить его в индекс: (language,crc_key,key). Тогда условие в join, например, такое:
Код: sql
1.
2.
3.
4.
LEFT JOIN jos_ws_translate AS D ON 
  D.language = 1 AND 
  D.crc_key=crc32(A.iso_code) AND
  D.key = A.iso_code

Такой прием обеспечивает существенное увеличение скорости поиска за счет быстрого целочисленного поиска по индексу; «длительное посимвольное» сравнение строк выполняется только при совпадении crc. У разных строк может быть одинаковый crc, поэтому посимвольное сравнение все же необходимо. Чем длиннее строки, тем прием эффективнее.
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38363301
boyboy61
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ooooooooooo наперед спасибо поставил грамотние индексы и все ОК . пока . :)
...
Рейтинг: 0 / 0
Помогите оптимизировать запрос, плз!
    #38364470
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boyboy61CREATE VIEW

Это не запрос. Это вьюха. Её не оптимизируют отдельно от запроса, который её использует.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите оптимизировать запрос, плз!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]