Всем привет! Итак, совсем недавно я писал коротенькую заметку с картинками касательно ru-доменов. Все бы хорошо, но мне никак не давало покоя то что эти данные лежат в csv который довольно просто импортнуть в БД и получить еще больше интересных данных.
Под катом мои наблюдения.
Приготовления
Для начала я решил выделить из названий доменов отдельные слова чтобы посчитать их вхождения. Алгоритм прост - отсекаем .ru, а в том что осталось выделяем отдельные слова выкидыванием лишних дефисов. Отдельно составил вхождения «слов» состоящих из последовательности цифр и отдельно слов без цифр. То есть получилось 3 файла - full,letter,digit. Где например домен site24.ru попал бы как site24,site и 24 в разные таблицы.
Теперь кроме одного csv под названием ru_domains у меня еще появились fullWord.csv, letterWord.csv и digitWord.csv.
Код сортировщика написан по всем канонам костыльного говнокодинга и приводить его здесь даже стыдно =)
Импорт в БД
Для опытов я создал отдельную БД в MySQL и создал там 4 таблицы - full,letter,digit и original. Первые 3 имеют в себе только по 2 поля - word и count. Это cлово и кол-во его вхождений соответственно. Таблица original содержит в себе 6 полей - домен, регистратор, дата регистрации, продлен до, дата окончания регистрации и какой-то еще один параметр (ну лень было разбираться).
И отдельно импортируем оригинальный csv с 5млн. записей. Тут заодно конвертируем дату в правильный формат. Данная конструкция отрабатывает на моем ноутбуке за 32 секунды. Так что это и правда быстро.
Из всего этого списка мне больше всех понравился разве что самый «смешной» домен с многочисленным «AXAXAXAXA» =). По этому адресу нас встречает какая-то странная картинка и счетчик liveinternet.
Самые короткие рушки начинаются от 2 символов и они абсолютно все заняты:
1 2 3 4 5 6
SELECTCOUNT(*) FROM original WHERELENGTH(name) = 5; +----------+ | COUNT(*) | +----------+ | 1296 | +----------+
Но сегодня один домен освобождается и я попробую успеть его застолбить ).
Кстати, конкретно сегодня освобождается вот такое кол-во доменов:
1 2 3 4 5 6
SELECTCOUNT(*) FROM original WHERE off_date='2016-01-20'; +----------+ | COUNT(*) | +----------+ | 3455 | +----------+
Теперь посмотрим на 20 самых старых доменов в зоне ru:
SELECTCOUNT(*) FROM original WHEREnameLIKE'%ulsk%'; +----------+ | COUNT(*) | +----------+ | 186 | +----------+
SELECTCOUNT(*) FROM original WHEREnameLIKE'ul-%'; +----------+ | COUNT(*) | +----------+ | 293 | +----------+
SELECTCOUNT(*) FROM original WHEREnameLIKE'%-ul.ru'; +----------+ | COUNT(*) | +----------+ | 300 | +----------+
SELECTCOUNT(*) FROM original WHEREnameLIKE'%73.ru'; +----------+ | COUNT(*) | +----------+ | 4222 | +----------+
И с большим отрывом суффикс 73 обгоняет всевозможные вариации с ul. Казалось бы, это всего лишь цифры из списка субъектов РФ для автомобильных номеров. Но каждый ульяновец знает что по адресу rosstroymehcement73.ru нас будет ожидать ульяновский сайт =)
UPD: После важного комментария в Fb добавил к сравнению также вот такой вариант без дефиса:
1 2 3 4 5 6
SELECTCOUNT(*) FROM original WHEREnameLIKE'ul%'; +----------+ | COUNT(*) | +----------+ | 5852 | +----------+
Тогда получается что такой вариант легко обходит даже сумму первых вариантов с префиксом с суффиксом 73. Не все конечно к Ульяновску относится, но все равно так точнее =)
P.S.
Для тех кто дочитал эту длинную телегу есть приятный бонус - SQL-база актуальная на сегодня. Там еще много всего интересного. А еще можно строить графики.