• Что такое кластерный индекс в mysql?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Кластерный индекс... это на самом деле понятие крайне виртуальное.

    Что такое обычный некластерный индекс? берём выражение индекса, считаем его значение для каждой записи, сортируем и пишем на диск. Получаем отдельную структуру, в которой выражение индекса сортировано. Когда потребуется искать заданное значение этого выражения, мы вместо просмотра от записи к записи сразу половинным делением быстренько найдём нужное значение, возьмём из него уникальный идентификатор записи, и обратимся за записью. Если в таблице 1000 записей, то для поиска заданного значения без индекса нам в среднем пришлось бы просмотреть 500 записей, а с индексом - всего 10.

    Теперь что такое кластерный индекс... сначала почти то же. Берём выражение индекса, считаем его значение для каждой записи, сортируем и... а вот теперь не записываем по порядку эти значения с номерами соответствующих записей в отдельную структуру, а сами записи располагаем в этом порядке. Теперь, когда потребуется искать заданное значение этого выражения, мы вместо просмотра от записи к записи, как это было, когда записи не сортированы, сразу половинным делением быстренько найдём нужное значение. Но нам уже не надо получать номер записи и обращаться за ней - мы нашли саму нужную запись.

    В MySQL (точнее, в используемом по умолчанию движке InnoDB) первичный индекс, во-первых, существует ВСЕГДА, во-вторых, определяется так (в статье, на которую дали ссылку, имеются неточности в пункте 2):
    1. Если первичный ключ задан явно, то его выражение является также и выражением кластерного индекса. Или иначе - первичный ключ и есть кластерный индекс.
    2. Если первичный ключ явно не задан, но в таблице имеется индекс, отвечающий всем следующим требованиям:
      • является уникальным
      • не является функциональным, в т.ч. не использует в выражении вычисляемые поля
      • не использует в выражении поля, которые определены как допускающие значение NULL

      то именно такой индекс используется в качестве первичного. А если таких индексов несколько, то используется первый по тексту запроса на создание таблицы
    3. Если не имеется ни того, ни другого - генерируется синтетический скрытый 6-байтовый номер записи, который и используется как первичный ключ. Следует отметить, что штатных способов доступа к этому значению не существует.


    Выглядит так, как будто это просто физическая сортировка данных по индексируемому полю.

    Фактически - именно так.

    Создаётся ли отдельная таблица или просто упорядочивается хранение существующих данных?

    Не создаётся. Но при изменении первичного индекса таблица полностью пересоздаётся с новым физическим порядком записей.

    Если данные упорядочиваются этим индексом, допустим по ID, то почему при select без сортировки данные могут возвращаться в произвольном порядке, а не отсортированные по ID по-умолчанию?

    Если не задан явно ORDER BY, сервер имеет право вернуть записи в любом порядке, как ему удобнее. В большинстве случаев, но не всегда, он будет возвращать записи в порядке чтения с диска...

    Представь такой (на самом деле невозможный, но не суть) случай - ты запросил таблицу. Вторая половина её ещё лежит в кэше, а первая уже выдавлена оттуда данными другой таблицы, нужными для выполнения запроса. Конечно, наиболее оптимальным будет начать передачу данных клиенту с этих записей, а пока они передаются, подчитать остальные, и передать их позже. Вот тебе порядок-то и поломался...

    ===

    PS. Кстати, правило выбора индекса, который будет использоваться в качестве кластерного, имеет неприятный побочный эффект. Если у некоторых полей, входящих в какие-то индексы, изменяется свойство NULLability, то это может привести к изменению того, какой из имеющихся индексов станет использоваться в качестве первичного по пункту 2. В результате мы получим невозможность использования INSTANT / INPLACE методов, и будет использован длинный COPY. Впрочем, ситуация такая крайне редка.
    Ответ написан
    2 комментария
  • Утечка DNS или как соц. сети узнают мое местоположение?

    CityCat4
    @CityCat4 Куратор тега Сетевое оборудование
    Внимание! Изменился адрес почты!
    А вы, конечно же первый раз заходите в данные учетки или всегда ходили в них через VPN :) Не? Правда, заходили когда-то без VPN и с тех пор ничего, кроме IP не поменялось? Ну, я Вас поздравляю - Вы посчитаны.

    IP поменялся, а вот слепок браузера - нет :) Все то же самое, куки-шмуки. Какой вывод - "нас предположительно дуют" :)

    Только новый профиль на новой виртуалке, работающей через VPN без утечек DNS
    Ответ написан
    Комментировать
  • Как узнать конкретный компьютер с которого подключились по rdp протоколу?

    @NortheR73
    системный инженер
    В системном журнале безопасности (Security Log) смотрим события 4624 (успешная аутентификация - An account was successfully logged on) или 4625 (ошибка аутентификации - An account failed to log on) с LogonType=10.
    В описании события имя пользователя - в поле Account Name, имя компьютера - в Workstation Name, IP-адрес - в Source Network Address
    Ответ написан
    Комментировать
  • Оптимизация сайта под высокие нагрузки (php,nginx, mysql). Какие критерии доработок? Что необходимо сделать в первую очередь?

    opium
    @opium
    Просто люблю качественно работать
    Вы делаете какую то хрень без диагностики
    Для начала тупо топ в линуксе что в такие моменты жрет больше всего ресурсов и уже это как то пытаться диагностировать и решать
    А так вы на уровне у нас ни одного админа и программиста нет мы сделаем какую то хрень по советам интернета
    Ответ написан
    Комментировать
  • Как заблокировать доступ к ресурсу для конкретного региона?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    GeoIP ngx_http_geoip_module

    1. Nginx должен включать модуль ngx_http_geoip_module.
    2. Качаем БД GeoLite2 Country.
    3. Пример конфига (nginx.conf), с отправкой всех из Индии в 403 лес:
    http {
        geoip_country /path/to/GeoLite2-Country.mmdb;
        map $geoip_country_code $allowed_country {
            default yes;
            IN no; # banned india
        }
    }
    
    server {
        if ($allowed_country = no) {
            return 403;
        }
    }
    Ответ написан
    5 комментариев
  • Как по ВПН соединить две сети с одинаковым поддиапазоном 192.168.0.1/24?

    @asmelnik
    Классика говорит, что НЕТ!
    Сети НЕ ДОЛЖНЫ ПЕРЕСЕКАТЬСЯ!

    "Костыли" при определенных условиях возможны, вроде proxy arp, проброса портов и.т.д.
    Но они имеют свои ограничения и условия применимости.

    Самое правильное одну из сетей перекинуть в другой диапазон, например
    192.168.1-255.0/24
    Если так уж принципиально 192.168.0.xxx
    Можно одну сеть сделать
    192.168.0.0/25 (адреса 1-126)
    вторую
    192.168.0.128/25 (адреса 129-254)
    Если в каждой сети менее 120-ти хостов,
    и маршруты 192.168.0.0/24 указать в VPN.

    Учитывая отсутствие возможности изменения второй сети и жесткое условие сохранения адрессации -- нормального решения НЕТ!
    Узел 192.168.0.12 в сети 1 НИКОГДА не сможет связаться (по IP) с узлом 192.168.0.12 в другой сети.
    Вот СОВСЕМ!
    (Проброс портов не считаем, это несколько иное условие).
    Ответ написан
    8 комментариев
  • Какой выбрать легкий и простой дистрибутив Linux для серфинга интернета?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Debian + xfce
    Ответ написан
    Комментировать
  • Существуют визуальные панели управления сервером?

    @Drno
    Нет такого. Ssh наше всё

    Просто потому, что очень часто каждый случай чем то уникален

    Конфиги в распростр прогам ищутся легко. Ну и чатгпт есть если что

    Чем мешает запуск bash через путти?))
    Ответ написан
    6 комментариев
  • Можно ли как-то сбросить или узнать пароль администратора в рабочей сети windows?

    @SunTechnik
    Странная ситуация.
    Но если у Вас системный администатор ушел со скандалом, то первое что надо делать - менять пароли, как минимум на пограничном оборудовании, желательно - сменить все пароли.
    И убедиться что у Вас настроено и работает резервное копирование...
    Ответ написан
    2 комментария
  • Macbook air как рабочий ноут для системного администратора?

    @Drno
    смотря какой сисадмин. если тебе надо кучу виндового софта, например тот же winbox, то тут без вариантов - винда(ну или виртуалка)

    посмотри ноуты zenbook

    одно время я еще пользовался ноутом Haier, за 15к... с 15" экраном(отличный кстати) и классной клавой, но там проц ниже селерона, и я юзал я его чисто для RDP до виндовой машины моей хорошей...
    Ответ написан
    4 комментария
  • Как создать VPN приложение на основе Shadowsocks?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Отправьте девопса к архитектору - пусть разберутся.
    Ответ написан
    Комментировать
  • Как искать вхождения из списка фраз в linux?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    grep -f файл1 файл2
    файл1 - "В одном файле список слов."
    файл2 - "Во втором большой список строк."

    man grep
    -f FILE, --file=FILE
    Obtain patterns from FILE, one per line. If this option is used multiple times or is combined with the -e (--regexp) option, search for all patterns given. The empty file contains zero patterns, and therefore matches nothing.
    Ответ написан
    Комментировать
  • Как вычислить виновника из-за которого отваливается интернет с какой-то периодичностью в маленькой сети?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Такого рода проблемы все и всегда решаются однотипно.
    1. Необходимо сформулировать критерии наличия проблемы.
    Как именно пропадает интернет, насколько часто, как надолго. Это нужно для диагностики. поиска причины и определения ушла ли проблема после принятия каких либо мер.
    2. Делить проблему на части и проверять части по отдельности.
    Самый эффективный способ делить - это пополам. Отсекаем часть сети и проверяем наличие проблемы в обеих частях (если есть возможность) или в одной из частей.
    3. Когда найден минимальный проблемный участок, который уже нельзя или бессмысленно делить - заменяем его.
    4. Помним, что чаще всего сложные проблемы - это композиция нескольких более простых. которые по отдельности могут не проявляться. В вашем случае может быть проблема, связанная с нагрузкой на роутер, например, которую создает один из услов из-за плохого контакта обжима и большого объёма биттых пакетов. Устранив одну из причин, вы, может быть, сделаете проявления проблемы реже, но не устраните её полностью. К примеру, если замените ротуер, битые пакеты будут всё равно будут нагружать вашу сеть и портить ее производительность, но это будет не так очевидно. Переобжав коннектор вы избавитесь от части нагрузки, но еслив ваш ротуер работал на переделе, то лишний вафай-клиент или тяжелый видос в сети сможет его снова нагрузить до критического снижения производительности.

    Итак, пробежимся по перечисленным пунктам сначала.
    1. Критерии. Поиск критериев - это часть решения. Обычно в этом случае нуно сорать необходимую статистику. Есть куча софта, который это умеет делать, но пинг есть всегда под рукой.
    Для этой тулзы есть две полезных опции: ключ для бесконечного пинга и размер пакета.
    В разных ОС эти ключи немного разные, поэтому ищите их отдельно, у меня нет винды под рукой, поэтому не стану на этом заострять.
    Скаж лишь, что пинговать лучше большими пакетами, жалетально превышающими размер TTL, прописанный в роутере. Тогда такой пинг будет реже проскакивать в периоды хорошей связи, то есть выловит больше пролблем.
    Пинговать нужно в отдельных окнах сразу несколько хостов:
    - ya.ru - этот хост всегда отвечает на пинги и выявит проблемы с DNS
    - 8.8.8.8 - это гугловый DNS-сервер, тоже всегда отвечает на пинги, покажет, что связь с инетом есть даже если DNS, прописанныйна компе не правильно работает.
    - 192.168.0.1 - или какой там IP у вашего роутера. Нужно. чтбы отделить проблемы с инетом от проблем с внутренней связностью до роутера
    - 192.168.0.x - ip одного из компов в сети. Я обычно пингую несколько компов, доступных через баксимальное число потенциально проблемных узлов - ethernet-розеток, свичей, вайфай-соединений... Этот пинг поможет понять где проблема, во внутрисетевой связности или в последней миле.

    Учтите, что проблемы часто бывают комбинированные и каждое сочетание симптомов будет свидетельствовать о раных проблемах.
    Да, тревожным принаком может служить не только пропадание пакетов, но и скачки в длительности их возврата, особенно если такие длительности достигают 500мс и выше. Но и скачки от 3мс до 250мс тоже будут свидетельствовать о каких-то проблемах.

    Запускать пинг на всех компах лучше одновременно и на некоторое время. Например минут на 20. Потом по статистике будет видно сколько где пакетов пропало.

    2. Если критерии наличия проблемы позволяют, то можно попробовать отрубать части сети и смотреть наличие проблемы. Это я в том смысле, что если проблема происходит в среднем раз в пару-тройку часов, то отрубать на многие часы части сети при диагностикем ожет быть неприемлемым.
    Редкеи пробемы дольше отлавливать. Но напоминаю, что критерии можно детализировать, ведь если пакеты у вас пропадат относительно редко, то скачки времени их возврата могут случаться чаще и подсвечивать проблему. Также можно сделать рамер пакета близким к максимальному, это должно тоже в некоторых случаях участить проявление проблемы.
    Иногда не мешает нагрузить сеть комированием по локалке большого файла. В линуксе можнно с помощью утилиты tc послать большой поток рандомных байт на любой сокет..
    3. Плавающие проблемы случаются из-за плохого обжима, перебитого жверью кабеля, перегрызенного UTP в плинтусе, из-за умиращих конденсаторов в блоке питания роутера (БП может не выдавать необходимого при нагрузках тока, но вольтметром такая неисправность не будет различима без нагрузки). Вообще старые (да и не только) роутеры могут страдать поплывшими электролитическими конденсаторами не только в блоках питания.
    Хорошо, когда можно подменить роутер.
    4. ну с четвертым пунктом ничего не пососветуешь, только разделать и тестировать все по отедльности и в разных сочетания и да поможет нам ктулху.

    А для тех, кто дочитал этот опус до конйа - интересная задачка. Что пингуют эти команды, как и почему?
    ping 1.1
    ping 2130706433

    Тех, кто знает, попрошу не спойлерить=)
    Пусть для кого-то будет сюрпризом этот дивный мир=)

    UPD. Простите за адское количество опечаток в тексте. Писал в спешке и с непривычной клавиатуры. Исправлю всё попозже. Не ожидал, что многим ответ придётся по душе. Вроде ж накапитанил как мог.
    Ответ написан
    5 комментариев
  • Узнать время и причину перезагрузки системы?

    @vitaly_il1
    DevOps Consulting
    1) Может у вас не было места на диске и какие-то логи потерялись? Еще вариант который может объяснить разницу между 1:52 и 4:52 - если поменялась timezone.
    2) Советую просто просмотреть глазами /var/log/messages за ночь. Когда система стартует легко видно, пролистайте назад от этого места, может что увидите.
    Ответ написан
    Комментировать
  • Как автоматизировать установку программного обеспечения и настройку windows машины?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Установили Windows, установили драйвера и все нужное ПО - сделали образ диска. Каждые 4 дня - просто восстанавливать ОС из образа.
    Ответ написан
    Комментировать
  • Ubuntu, VirtualBox захватывает системные сочетание клавиш. Как отучить его?

    MrSpace
    @MrSpace
    Люблю JS и WP
    Тоже столкнулся с этой проблемой.

    Решается она очень просто. Открываем виртуалбокс:
    Файл -> Настройки - > ввод -> автозахват клавиатуры(убираем галочку) - Наслаждаемся!
    Ответ написан
    1 комментарий
  • Как изменить горячую клавишу смены языка на Ctrl+Shift в Ubuntu 18.04?

    Надо установить gnome-tweaks:
    sudo apt-get install gnome-tweak-tool
    Далее вызываете gnome-tweaks, с левой стороны выбираете "Клавиатура и мышь".
    Под "Комбинация клавиш ... " есть кнопка "Дополнительные параметры раскладки" нажимаете и в окне выбираете "Переключение на другую раскладку". Там можно выбрать любую комбинацию от Alt+Shift и т.д.
    Ответ написан
    15 комментариев
  • Как определить аффилированность доменов?

    Яндекс точил аффилиат-фильтр по куче параметров, а вы хотите только по домену найти аффилиаты? )) а чего тогда яндекс по одному домену определить не смог... изучал контент на сайтах, cms, контакты и т.п.

    Но в то же время с долей погрешности имхо можно попробовать найти выборку сайтов, которые скорее всего принадлежат одной компании.

    К главным факторам по которым поисковая система Яндекс может определить что один сайт является аффилиатом другого может быть следующее ( в процентах указана степень риска):

    Совпадение регистратора -16%
    Если даты регистрации доменов очень близки -22%
    Похожие темпы прироста ссылочной массы -26%
    На сайтах одинаковая CMS -26%
    Сайты расположены на одном хостинге -32%
    Большой процент совпадения доноров в ссылочной массе -49%
    Сайты находятся в одной подсети (достаточно совпадение трех октетов в IP адресе) -59%
    Совпадение данных об организации на сайте и в справочных -68%
    Наличие перелинковки между сайтами, то есть если сайты ссылаются друг на друга -72%
    Совпадения данных владельца сайтов -79%
    Одинаковый контент (имеется ввиду не уникальность текстов а одна направленность сайта) -93%
    Наличие одинаковых контактных данных (email, skype и.т.д.) -99%
    Совпадение адреса, телефона и названия организации -100%


    Источник - https://seonomad.net/article/affiliat-filtr-yandeksa

    то есть в вашем случае имеет смысл смотреть пункты отмеченные жирным.
    если совпало много параметров (по степени риска), то с большой долей вероятности можно предположить, что сайты принадлежат одной конторе.

    Причем не факт, что они будут аффилиатами в полном смысле этого слова.
    Просто на конторе может быть 15 сайтов по разным тематикам, регионам и т.п. - эдакий диверсифицированный бизнес. То есть по домену если и можно узнать, то определенные сайты, которые скорее всего принадлежат одной конторе, а тематику сайтов, их ключи и т.п. по доменным записям узнать не получится.
    Ответ написан
    Комментировать
  • На каком оборудовании построить беспроводную сеть для офиса?

    @vovaxa44
    Не проектируйте WiFi на Mikrotik! Они не поддерживают протоколы роуминга 802.11r/k/v. При перемещении, устройства будут разрывать все соединения и отключатся от сети секунд на 5. Такие Микротики не поддерживают Beamforming, так что зона покрытия будет меньшая. Микротик плохо управляет аиртаймом при количестве клиентов больше 5.

    Рекомендую к рассмотру Keenetic, где все эти функции реализованы + есть умный qos который автоматически ставит в первую очередь приложения для ip-телефонии (viber, telegram, zoom, google meet и т.д.) и где этих приложений в базе несколько тысяч.

    Также могу порекомендовать Ubiquiti и TP-Link eap точки. Если есть деньги, то это HPE Aruba.

    Wifi в микротиках это только доп функция для галочки. Мтики хорошие как шлюзы или радиомосты, но не как точки доступа. Поставите Микротик - разочаруетесь в WiFi! Еще раз повторюсь - роуминга у Мтиках нет!!!

    Если денег совсем куча, то наилучше себя показывает Ruckus.
    Ответ написан
    7 комментариев
  • Как сохранить HTML-страницу сгенерированную на JavaScript?

    @web4_0
    Уточните вопрос: вам html сгенерённый нужно посмотреть или чтобы вот прям сохранить можно было на диск?

    Если просто посмотреть, то в FF поможет выделение всей страницы с помощью Ctrl+A и далее в контекстном меню view Selection Source или можно даже установить WebDeveloper экстеншн, у него есть View Generated Source
    Ответ написан
    1 комментарий