Задать вопрос
  • Как отключить задания google в планировщике задач?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Они идут я так понял для каждого пк со своим кодом (onedrive Standate Task-S-1-5-21-3362628...) и у каждого ПК свой код и они не дублируются.

    schtasks /query /fo list | find "OneDrive"
    Само собой от имени администратора.
    А дальше очевидно - FOR /F и SCHTASKS /Delete.
    Ответ написан
    2 комментария
  • Как добавить партицию, если уже есть maxvalue?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Да, нужно делать реорганизацию - операция потенциально требует переноса данных между партициями.

    Прмер:
    CREATE TABLE table_name (create_date DATE);
    
    ALTER TABLE table_name 
    PARTITION BY RANGE(create_date + 0) (
        PARTITION p_old VALUES LESS THAN(20111201),
        PARTITION p_1 VALUES LESS THAN(20120201),
        PARTITION p_2 VALUES LESS THAN(MAXVALUE)
    );

    Добавляем партицию (точнее, разделяем партицию на две):
    ALTER TABLE table_name
        REORGANIZE PARTITION p_2 INTO (
            PARTITION p_2 VALUES LESS THAN (20130101),
            PARTITION p_max VALUES LESS THAN (MAXVALUE)
    );

    DEMO
    Ответ написан
    Комментировать
  • IP для VLAN - почему два?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Вот какая связь между VLAN и адресом внутреннего интерфейса коммутатора? Никакой, от слова вообще. Данный адрес - именно адрес внутреннего интерфейса коммутатора. Запись просто утверждает, что внутренний интерфейс коммутатора доступен по указанному адресу в указанном VLAN. Т.е. если, находясь в данном VLAN, узел обратится по данному адресу - то он будет обращаться к коммутатору. Ну захотелось человеку, который настраивал сетку, присвоить коммутаторам адреса из разных подсетей, но в одном VLAN - имеет право. Неясно, правда, какой с того профит, но проблем с этого уж точно никаких. У меня в сети, например, для коммутаторов выделены аж три разные подсети в трёх разных management VLAN, различающихся по назначению, и некоторые из коммутаторов имеют адреса в двух, а магистральные даже во всех трёх, VLAN.

    Я понимаю, если бы что-то бы интерферировало - скажем, один и тот же адрес, или один адрес был бродкастом подсети второго адреса. Тогда бы был предмет для беспокойства.

    Если с такой настройки корячит - ну перенастрой.
    Ответ написан
    2 комментария
  • Как получить среднее значение с начала года на каждый день SQL?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT *, AVG(RT) OVER (PARTITION BY Curr, YEAR(Dates) ORDER BY Dates) AS example
    FROM src_table
    Ответ написан
    Комментировать
  • Как работает link-local подсеть 169.254.0.0/16?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Данная сеть ничего особенного из себя не представляет. Работает так, словно есть DHCP, обслуживающий эту сеть. Просто есть ещё пара моментов. Первый - алгоритм самоуправления таков, что с очень высокой вероятностью гарантирует повторяемость, т.е. использованный однажды адрес будет использоваться и далее. Второй - отсутствие централизованного управления приводит к необходимости использовать для работы с пространством имён бродкастовые механизмы анонсирования и обнаружения, а также исключает возможность распространения иной информации - например, о шлюзах в другие сети.
    Ответ написан
    Комментировать
  • Как посчитать по двум полям SQL Server?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT SUM(some), SUM(some * noone)
    FROM table

    ?
    Ответ написан
    1 комментарий
  • Как оптимизировать запрос с подзапросами с COUNT?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT ebids.*
         , SUM(comment_system.itemtype='qqq') AS has_qqq_comment 
         , SUM(comment_system.itemtype='www') AS has_www_comment 
         , SUM(comment_system.itemtype='eee') AS has_eee_comment 
    FROM ebids
    JOIN comment_system ON comment_system.item_id = ebids.id
    WHERE ebids.status != 'auto'
    GROUP BY ebids.id
    ORDER BY ebids.id DESC
    LIMIT 0, 100
    Ответ написан
    Комментировать
  • Как держать в таблице только последние 10 записей?

    @Akina
    Сетевой и системный админ, SQL-программист.
    1. Создать сразу 10 записей с достаточно древней датой.
    2. Вместо вставки записи обновлять самую старую:
    UPDATE table
    SET {columns} = {values}
    ORDER BY created_at ASC LIMIT 1;

    Само собой created_at - ON UPDATE CURRENT_TIMESTAMP. Ну или обновлять вручную, если больше заняться нечем.

    Такая технология к тому же позволяет "на лету" изменять лимит записей. Надо больше? вставляем необходимое число записей с датой в далёком прошлом. Надо меньше? удаляем необходимое число самых старых записей.
    Ответ написан
    Комментировать
  • Как сделать чтобы заблокированные сайты работали без включения впн или прокси?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Сайт заблокирован провайдером, чтобы зайти на него приходится постоянно включать vpn.

    Используйте браузерный плагин избирательного использования VPN. Который только для сайтов из списка использует подключение через VPN, а остальные пропускает напрямую.
    Ответ написан
  • Что быстрее поиск по файлу JSON в PHP или в базе посредством MySQL?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Что будет лучше в плане скорости и нагрузки

    Определитесь. Или в приоритете скорость, или нагрузка. Но не то и другое одновременно.

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

    Если приоритетна нагрузка - то поиск следует производить средствами СУБД.
    Ответ написан
    Комментировать
  • Как оптимизировать INSERT запросы в PDO(phpmyadmin)?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Пример.

    На стороне PHP имеется массив строк:

    aaa
    bbb
    ccc

    Необходимо записать его в таблицу. Причём уложиться в один запрос. Длина списка, понятно, не фиксирована.

    Первое - объединяем/сериализуем этот массив в одно значение. Допустим, выбрали JSON массив. То есть ["aaa", "bbb", "ccc"]
    И именно этот JSON мы передадим в запрос.

    Далее на стороне MySQL надо разобрать JSON на элементы и вставить в таблицу. Это делается одним запросом.
    INSERT INTO destination_table (single_value)
    SELECT single_value
    FROM JSON_TABLE( ? ,
                     '$[*]' COLUMNS ( single_value VARCHAR(255) PATH '$' )) jsontable;

    И... а, собственно, всё.

    Осталось только убедиться, что размер строкового представления данных не превышает установленный в MySQL размер входящего пакета, и, если превышает, то соответствующим образом подрихтовать сессионную переменную max_allowed_packet. Впрочем, дефолтно там 67108864 байтов, это порядка 1480 байтов на элемент - должно хватить.
    Ответ написан
    Комментировать
  • Как пробросить компьютер в другую сеть?

    @Akina
    Сетевой и системный админ, SQL-программист.
    как сделать один компьютер в сети Б доступным из интернета?

    Именно из Интернета? или из сетки 192.168.1.0/24?

    У меня только такая идея: вставить в нужный компьютер в сети Б(которая без интернета) вторую сетевую карту и подключить её к сети А(с интернетом), выдать адрес из диапазона 192.168.1.1-254, дальше как-нибудь настроить одновременную работу обеих карт, метрики там, всё такое.

    Ну правильная идея. Причём карты будут работать одновременно, и ничего настраивать не нужно. Ведь, как я понимаю, в 198.148.46.0/24 ни дефолтного шлюза, ни статических маршрутов нет.

    Другой вопрос - если сеть изолирована от Инета, то, наверное, не просто так? и, значит, следует на этом двухинтерфейсном компе принять все необходимые меры безопасности. В том числе запретить маршрутизацию и локальный транзит (пакеты на адрес второго интерфейса из сети первого).
    Ответ написан
    2 комментария
  • Гибридные, транковые порты на коммутаторах, это всё порты для коммутаторов? Не для конечных устройств?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Гибридные, транковые порты на коммутаторах, это всё порты для коммутаторов? Не для конечных устройств?

    В общем - нет. Как правило - да.

    Для более осмысленного ответа необходимо как минимум понять, что именно Вы разумеете под терминами "гибридный" и "транковый" (и даже - не считаете ли Вы, что это одно и то же).

    подружить 2 VLAN (2 сети) на одном конечном устройстве?

    Так вланы, и в них сети, разные, или разные сети в одном влане?
    Ответ написан
  • Как вставить все значения у всех таблиц через JOIN?

    @Akina
    Сетевой и системный админ, SQL-программист.
    При всей неизбывной глупости такого решения:

    INSERT INTO main (table1_id, table2_id) 
    WITH 
    cte1 AS ( SELECT id, ROW_NUMBER() OVER (ORDER BY id) rn FROM table1 ),
    cte2 AS ( SELECT id, ROW_NUMBER() OVER (ORDER BY id) rn FROM table2 )
    SELECT cte1.ID, cte2.ID
    FROM cte1
    JOIN cte2 USING (rn);
    Ответ написан
  • Не получается настроить внутреннею сеть между двумя виртуальными Linux машинами в VirtualBox?

    @Akina
    Сетевой и системный админ, SQL-программист.
    pfSense
    Интерфейс WAN, который должен смотреть в Инет - VMNet8 (NAT), адрес по DHCP, либо VMNet0 (direct), статический адрес.
    Интерфейс LAN - любой внутренний VMNet (например, VMNet2), статический адрес.

    Cервер Metasploitable, интерфейс в этом сегменте - тот же VMNet (VMNet2), адрес статический.
    Клиенты Ubuntu и Kali - тот же VMNet, адреса статические либо динамические, дефолт-шлюзом LAN-адрес pfSense. Статический маршрут в подсеть частного клиента Ubuntu через адрес Metasploitable в этом сегменте.

    Второй интерфейс сервера Metasploitable - в другой внутренний VMNet (скажем, VMNet3), статический адрес из другой подсети.
    Клиент Ubuntu за ним - к тому же VMNet (VMNet3), адрес статика или динамика. Дефолтным шлюзом адрес Metasploitable из этого сегмента.
    Ответ написан
    Комментировать
  • Магия в топологии сети, объясните как такое возможно?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Пинг, вернее, ответ на него - самая низкоприоритетная из всех задач коммутатора. Так что если он занят чем-то более важным, то просто не ответит. Бывает, что даже на пинги устройству, подключенному непосредственно к коммутатору, получают только половину ответов. Это нормально.
    А другие пингуемые нагружены, видимо, меньше, или производительность у них больше - вот потерь и нет.
    Ответ написан
    Комментировать
  • Что я делаю не так, почему MySQL ругается?

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

    create table if not exists dialogs (
        id int primary key auto_increment, 
        user_id_one int not null, 
        foreign key (user_id_one) references users (id), 
        user_id_two int not null, 
        foreign key (user_id_two) references users (id)
    )
    Ответ написан
    Комментировать
  • Как найти следующую строчку в mysql?

    @Akina
    Сетевой и системный админ, SQL-программист.
    WITH
    cte AS (
      SELECT *, COALESCE(LEAD(id) OVER (ORDER BY id),
                         MIN(id) OVER ()) next_row_id
      FROM comments
    )
    SELECT * 
    FROM cte
    Ответ написан
    Комментировать
  • Можно ли в хранимых процедурах создать временную функцию?

    @Akina
    Сетевой и системный админ, SQL-программист.
    CREATE FUNCTION не входит в список конструкций, разрешённых к использованию в stored objects (procedures, functions, triggers, event procedures) и prepared statements.

    Ответ: НЕЛЬЗЯ.

    PS. В MySQL нет временных функций, все функции - статические. Встроенные, регистрируемые либо хранимые.
    Ответ написан
    1 комментарий
  • PHP не создаёт запись MySQL, ошибки не выводит, что делать?

    @Akina
    Сетевой и системный админ, SQL-программист.
    No index used in query/prepared statement ...

    что это означает?

    Это означает, что, по мнению PHP/mysqli, нет подходящего индекса для обработки запроса, сервер будет шерстить всю таблицу, что неэффективно. В общем, он просто старается сделать тебя счастливым (твоё мнение при этом никого не интересует).
    Возможные решения:
    1. Создать индекс users (username)
    2. Изменить настройки mysqli_report() (см. ответ SagePtr)

    без неё обойтись нельзя, т.к. одинаковые ники будут вызывать ошибки в некоторых уголках сайта
    что делать?

    Тогда альтернатив вообще нет.

    Создать уникальный индекс users (username).

    После этого код с проверкой на существование можно смело выбросить (дубликат в принципе не будет записываться сервером). Но обязательно добавить код для обработки ошибки дублирования при добавлении.
    Ответ написан
    Комментировать