• Таблица маршрутизации?

    @res2001
    Developer, ex-admin
    1. Маршрутизаторов может быть много. Например, сеть большого предприятия, где используется несколько подсетей + доступ в интернет. На какой именно маршрутизатор должен отправлять пакет хост, предназначенный не для своей сети?
    2. Маршрутизаторы добавляются в систему то же через таблицу маршрутизации. Для шлюза по умолчанию в таблице маршрутизации добавляется маршрут для сети 0.0.0.0 (т.е. все адреса).

    Кстати, комп с виндой, даже не с серверной виндой, вполне может выступать в качестве маршрутизатора, т.к. винда умеет в маршрутизацию.
    Ответ написан
    Комментировать
  • Как перенести данные из SQL server в MySQL?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Простейшим вариантом будет выгрузить csv и, соответственно, загрузить его в mysql, используя либо запрос LOAD DATA либо какую-нибудь кнопочку в интерфейсе.
    Во всяком случае, на этот вариант вы потратите гораздо меньше времени, чем на поиски "экранирования".

    А так-то SQL сервер вряд ли поддерживает создание дампа в формате Mysql напрямую
    Ответ написан
    3 комментария
  • Что быстрее SQL или Javascript?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    В общем, чтобы не издеваться над девушкой, объясним на пальцах.

    Во-первых, заголовок у вопроса чудовищно некорректный. Это все равно что спросить, "что быстрее - пылесос или стиральная машина?"
    Во-вторых, ответ на вопрос "производить ли обработку данных в БД или же запросить все данные в клиентское приложение и обрабатывать там" совершенно очевиден: обработку данных следует производить в общем случае только в БД. Она для этого и придумана. Чтобы обрабатывать значительные объемы данных.

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

    Несомненно, из любого правила есть исключения. И бывают ситуации, когда приходится считать в приложении.
    Но на вопрос в общем виде ответ будет совершенно однозначный. Не "может так, может сяк", а только в БД.
    Ответ написан
    9 комментариев
  • Правильно ли я выбрал структуру базы данных, создав 2500 одинаковых таблиц?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Andrew_Novikov,

    Пользователь выбирает имя спортсмена, например "Petr_Yan", дальше идет запрос к БД "select * from Petr_Yan",

    нет-нет дружище так нельзя. Переделывай. Никто не создает по таблице на пользовательский
    запрос. Таблица - слишком дорогой ресурс чтобы ей так просто бросаться.

    Над таблицами думают. Их рисуют на архитектурных диаграммах. Ты чисто случайно словил
    дефект в различиях файловых систем Linux/Windows и мы пришли вообще к тому что ты
    сделал невернй дизайн БД.

    После того как переделаешь - проблема сама собой уйдет. А когда будешь придумывать
    имена таблиц - делай все в одном регистре. Так - проще жить. Меньше в будущем
    будет архитектурных косяков.
    Ответ написан
    6 комментариев
  • Почему скрипт выдает разные результаты?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Прежде, чем искать ошибку в коде, вам надо аналитически доказать, что вводимая вами операция обладает нужными свойствами. Нужные инструменты - бумага, карандаш, резинка, голова.
    Ответ написан
    2 комментария
  • Как вычислить разрешение экрана?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    x * y = 4608000
    x2 + y2 = [6.73 * 522]2 = 12341169

    y = 4608000 / x
    x2 + 46080002 / x2 = 12341169

    x4 - 12341169 * x2 + 21233664000000 = 0
    D = 123411692 - 4 * 21233664000000 = 67369796286561
    x2 = (12341169 + sqrt(D)) / 2 = 10274539
    x = 3205.392, y = 1437.578

    Дальше можно посмотреть ближайшие стандартные разрешения и выбрать подходящее.
    Ответ написан
    1 комментарий
  • Как незаметно переползти на новый сервер?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно поднимают балансировщик и делают так что сначала все ходят на 1.1.1.1.
    Потом делают перевод новых сессий в новое место в пропорции 20:80.
    И так далее пока все сессии не переползут.
    Ответ написан
    4 комментария
  • MySQL if else как правильно?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SET `datetime` = GREATEST(`datetime`, NOW()) + INTERVAL 10 DAY
      WHERE ...
    Естественно, поле должно быть стандартного типа DATE или DATETIME.
    Ответ написан
    3 комментария
  • Есть ли способы включить компьютер по wake on lan через nat?

    @alexalexes
    Может есть "старый, советский, есть в каждом доме" способ чтобы обойти без покупки белого ip?

    Вам понадобится "старый, советский, есть в каждом доме" комп, который остался после предыдущего апгрейда и не оказался в комиссионке. В старом компе должен остаться CD/DVD привод. Подставьте лоток привода так, чтобы он находился напротив кнопки включения вашего нового компа. Настройте профиль удаленного подключения на старом компе в AnyDesk или TeamViewer, так, чтобы автономно можно было подключаться к нему из любого другого устройства.
    Чтобы включить новый комп, вам нужно удаленно зайти на работающий в сети старый комп и программно на иконке дисковода активировать команду открыть или закрыть дисковод, тогда новый комп включится.
    PS: такую же операцию можно провести и без дисковода. Из окружения старого компа будет доступна локальная сеть, по которой вы можете отправить любые команды на любые устройства локальной сети.
    Ответ написан
  • Как составить запрос к нескольким таблицам?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Похоже Вам нужен UNION
    select 't1', phone           from t1 where phone = '987654321'
    union all select 't2', phone from t2 where phone = '987654321'
    union all select 't3', phone from t3 where phone = '987654321'


    https://sqlize.online/sql/psql14/ac0b0a66662794d8c...
    Ответ написан
    Комментировать
  • Можно ли использовать несколько сетей?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Угу-угу. Воткнул ты такой usb с чем-то непонятным, сидишь балдеешь, потом поднимаешь глаза - опа, а рядом безопасник стоит :) и без всякой улыбки спрашивает - а что это такое только что воткнули в ноут?

    Если это по работе - лучше напрячь админов. Если не по работе - лучше всего не лезть на корпоративный ноут.
    Ответ написан
    1 комментарий
  • Как работает кластер galera?

    paran0id
    @paran0id
    Умный, но ленивый
    https://galeracluster.com/library/documentation/ov...

    Ну камон, репликация мускуля - это не тайные знания.

    Очевидно, что процесс передачи на другие серверы - не мгновенный, и требует некоторого времени. И столь же очевидно, что если после получения новых данных, но до передачи их в другие серверы кластера исходный сервер сдох, то этих данных не будет на оставшихся серверах, и, как Вы правильно заметили, запросы будут выполняться с устаревшими данными.


    Ага, синхронная репликация - запрос считается выполненным, когда данные разлетелись по кластеру. Медленно и надежно. Асинхронная репликация - сначала запрос считается выполненным, потом данные синхронизируются. быстро, но ненадежно.

    А вообще, всех распределенных систем касается CAP-теорема, почитайте. Идеальных распределенных систем не бывает.
    Ответ написан
    1 комментарий
  • Как задать права на редактирование файла без удаления?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    ЕМНИП, офис при сохранении файла создаёт временный, записывает данные в него, удаляет старый, переименовывает временный. Так что, без прав на удаление сохранение работать не будет.
    Ответ написан
    3 комментария
  • Как сделать автозаполнение поля mysql?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    Правильно делить это на две таблицы: продукты и варианты. Но если хочется странного то вуаля:
    insert into products (product_id, name, variant, price) 
    select 
        coalesce (
            min(case when name = 'мышь' then product_id end ),
            coalesce(min(product_id), 0) + 1
        ) product_id
        ,'мышь', 'красная', 150 
    from products;


    https://sqlize.online/sql/mysql57/50e7ba1b33d77fa9...
    Ответ написан
    3 комментария
  • Как запретить загрузку с LiveCD?

    @Drno
    никак. есил человек имеет физический доступ до ПК - он найдет способ

    разве что шифровать целиком диск, но это тоже имеет свои "побочные" моменты
    Ответ написан
    2 комментария
  • Как сгрупировать запрос в Laravel?

    Adamos
    @Adamos
    Раз все равно "все, которые остались", значит, это вопрос условия сортировки.
    Условие пока не сформулировано - если статус 1 у пяти статей, которые три из них надо брать?
    Ну, и вымучивая один запрос, неплохо бы проверить, не получится ли он медленнее четырех простых: взять три последних айдишника (индекс, мгновенно), один первый (аналогично), три первых (видимо) по статусу, исключая полученное на предыдущих запросах (а вот с этим в одном запросе подзатрахаешься конкретно) - и окончательный селект, у которого в сортировке указаны эти айдишники как повышающие приоритет.

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

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Из поисковых систем для Full-text search я помню только две. Sphinx, Lucene (на его базе Elastic/Solr). Но насколько они применимы в данном примере - я не знаю. Надо глубже понимать задание. На уровне юз-кейсов.

    Зачем тут графовая БД - непонятно. Приведите пример что вы хотите записывать в граф.
    Ответ написан
    8 комментариев
  • Логика игры "Пятнашки" на Python?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Надо, чтобы "четность" перестановки совпадала с четностью финального поля (1).
    Занумеруйте все 16 позиций слева направо сверху вниз.
    чтобы подсчитать четность, рассматривайте каждую пару заполненных позиций (15\*14/2=105 пар) - если числа идут не в том порядке (большее число на позиции с меньшим номером) - то прибавьте 1 к ответу. В конце возьмите ответ по модулю 2. Это и будет четность перестановки.

    Чтобы получить поле, которое можно собрать, сгенерируйте любую перестановку (случайно перемешайте 15 чисел), а потом посчитайте ee четность. Если четность плохая, то поменйте местами любые 2 соседних элемента (выберите случайно, или меняйте первые 2 всегда - на вероятности всех возможных полей это не влияет).

    Edit: Но вы это почти все итак знатете, ибо функция is_solvable в вашем коде как раз инверсии уже считает.
    Значит, Но вы знаете, что плохое поле от хорошего отличается лишь четностью, значит, если поле плохое - меняйте местами 2 соседних по порядку элемента. Например верхний левый со вторым в верхней строке.
    Ответ написан
    Комментировать
  • Как проверить бекап postgres что он не битый?

    Melkij
    @Melkij
    PostgreSQL DBA
    Проверить бекап - путь только один, это восстановиться с него и посмотреть всё ли на месте. То самое известное, что все администраторы по наличию бекапов делятся на 3 типа: кто не делает бекапы, делает бекапы и тех, кто проверяет восстановление из бекапа.

    прервался ли pg_dump в какой-то момент - смотреть можно, как обычно, по коду возврата, а так же по stderr.

    PS: довольно тревожная мысль не сохранять права доступа
    Ответ написан
    5 комментариев
  • Как оптмизировать INSERT-SELECT SQL запрос?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Как всегда автор не указывает тип dbms. Ох-ох-ох..

    Запрос состоит из двух функционалов. Один - это собственно выборка - и другой это вставка.
    Скорее всего медленно работает выборка в части соединения двух таблиц.
    INSERT INTO tabel0 (row_1, row_2, row_3, row_4)
    SELECT oa.row_5,
           oa.row_6,
           oa.row_7,
           nw.row_8
    FROM table1 t1
           LEFT JOIN table2 t2 on t2.row_9 = t1.row_10
    WHERE t2.row_11 IS NOT NULL;

    Вот здесь где идет join по row_9 и row_10 надо построить индексы по этим полям.
    Потом прогнать analyze по обоим таблицам.

    И запустить еще раз.

    Вставка тоже может тормозить по разным условиям (триггеры, instead-of триггеры, сложные констрейнты
    или просто сложные типы данных наподобие xml/json которые требуют много I/O). Но для начала
    надо хотя-бы с выборкой разобраться.
    Ответ написан
    3 комментария