Вход | Регистрация

Информационные технологии :: Администрирование

Задача для знатоков MуSQL - оптимизировать текстовую операцию

Задача для знатоков MуSQL - оптимизировать текстовую операцию
Я
   Доктор Манхэттен
 
18.09.18 - 21:14
Нужно запросом вычленить домен второго уровня из полного домена, например:
из http://www.ebay.co.uk должно получиться co.uk

Самое главное: при выполнении запроса должно выделиться в атмосферу наиминимальнейшее количество СО2, поэтому если у вас знания MySQL на уровне учебника, не отвечайте на этот вопрос. За один раз запрос может обрабатывать больше миллиона строк, поэтому это очень важно.
 
 
   Доктор Манхэттен
 
1 - 18.09.18 - 21:15
В (0) в строку "http://www.ebay.co.uk"; автоматически добавилось "http://";, на самом деле там этого не должно быть.
   Доктор Манхэттен
 
2 - 18.09.18 - 21:17
в (1) еще и точки с запятыми сами добавились. Жесть.
   0xFFFFFF
 
3 - 18.09.18 - 21:45
Под "миллионы строк", дабы не выпускать много СО2, оптимизируют не априори кривой запрос, а структуру данных - таким образом чтобы наименьшими затратами выбирать необходимые данные.
   Fram
 
4 - 18.09.18 - 22:20
(3)+1 такие задачи правильной записью в БД решают
   vde69
 
5 - 18.09.18 - 22:22
я-бы пошел созданием ХП...

хотя есть еще вариант:
делаем дополнительную таблицу со всеми доменами первого уровня (".ru",".uk" и т.д.) и мудрил-бы с ней (оперируя длиной окончания)
   Fram
 
6 - 18.09.18 - 22:22
   Fram
 
7 - 18.09.18 - 22:24
REVERSE, SUBSTRING_INDEX, REVERSE и еще раз SUBSTRING_INDEX
   vde69
 
8 - 18.09.18 - 22:26
REVERSE - затратная операция, особенно на полях переменной длинны
   Fram
 
9 - 18.09.18 - 22:28
(8) переживет
   Fram
 
10 - 18.09.18 - 22:40
(9)+ без реверса не вижу решения
 
 Рекламное место пустует
   Fram
 
11 - 18.09.18 - 22:46
вру! SUBSTRING_INDEX с конца тоже умеет искать. Тогда
SUBSTRING_INDEX(SUBSTRING_INDEX('http://www.ebay.co.uk', '.', -3), '.', 1)
   Asmody
 
12 - 18.09.18 - 22:51
В 8 версии mysql есть функция regexp_substr().
Видимо, ТС даже фичалист не осилил, не то что учебник.
   Доктор Манхэттен
 
13 - 18.09.18 - 23:43
(3) Очень хорошо, плюсую
(5) Ни в коем случае
(11) Если решать твоим способом, достаточно одного SUBSTRING_INDEX
(12) Второй худший вариант после (5)
   Fram
 
14 - 19.09.18 - 00:07
(11) ошибся. если домен второго уровня то -2
   Asmody
 
15 - 19.09.18 - 00:18
(13) Худший вариант - решать эту задачу средствами SQL.
   Доктор Манхэттен
 
16 - 19.09.18 - 00:43
(14) +1. То что можно сократить SUBSTRING_INDEX - понял?
(15) опять мимо

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует