Задать вопрос
  • Как составить запрос к нескольким таблицам?

    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
    Дома с переломом ноги
    Угу-угу. Воткнул ты такой 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
    DBA Team для вашего PostgreSQL?
    Проверить бекап - путь только один, это восстановиться с него и посмотреть всё ли на месте. То самое известное, что все администраторы по наличию бекапов делятся на 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 комментария
  • Как массово изменить значение ID в таблице wp_posts из базы данных сайта Wordpress?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега SQL
    Седой и строгий
    Идентификаторы должны оставаться неизменны, в этом их суть.
    Ответ написан
    Комментировать
  • Как в запросе сослаться на предыдущие строки?

    scoffs
    @scoffs
    Fullstack | C# | Student
    Возможно, вам надо что-то типа этого:
    SELECT * FROM (
      -- Внутренний подзапрос, применяющий оконную функцию LAG() к таблице calls
      SELECT *,
        LAG(duration) OVER (PARTITION BY cid_from ORDER BY call_time) AS previous_duration
      FROM calls
    ) AS subquery
    -- Основной запрос, фильтрующий результаты
    WHERE duration > 20 -- Длительность звонка больше 20 минут
      AND previous_duration < 2; -- Предыдущая длительность меньше двух минут
    Ответ написан
    1 комментарий
  • Что такое бизнес логика и как их разделять с логикой приложения?

    Adamos
    @Adamos
    Владимир, вы бы еще архитектуру хелловорлда взялись "понимать".
    Если хотите понять в двух словах, то можно применить такой принцип: бизнес-логика - это то, ЧТО должно выполнять приложение. А логика приложения - то, КАК оно это выполняет. Гругря, "по заказу формируются документы в формате XLSX и PDF" - это бизнес-логика. А вот запрос к БД за данными заказа, разбор шаблона документа, использование библиотек для генерации файлов нужного формата - это логика приложения. Отталкиваясь от такого примитивного понимания, можно разглядеть уровни в коде: где программист размахивает человекопонятными блоками и выполняет техзадание, а где - копается в байтах, соединениях и потоках вывода. Если мы одно от другого отделяем, то оказывается, что низкий уровень для большинства задач один и тот же и его можно опять-таки собрать в библиотеки и практически без изменений использовать там, где понадобилась другая бизнес-логика, но использован тот же технологический стек.
    Ответ написан
    1 комментарий
  • Как открыть все порты в промежутке?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    nmap показывает не открытые порты, а открытые порты, на которых "слушает" какой-то сервис.
    Если порт пустой - кто даст ответ, что он открыт?
    Ответ написан
    Комментировать
  • Как добиться баланса между скоростью и производительностью при импорте ~200к строк в базу данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    1) 200k строк это вобщем-то мало для современных БД
    2) Загрузи как есть в новую таблицу вот как тут пишут
    https://stackoverflow.com/questions/14127529/impor...
    3) С помощью alter add column добавь нужные колонки и обнови через UPDATE.

    Никуда больше копать не надо. Загрузка данных - уже 30 лет как решенная коробочная задача.
    И ее делают встроенные в БД утилиты и сама БД если если ей доступен диск с csv-файлом.

    Никакой ORM тебе тоже не нужен. ORM вообще - противопоказан для задач аналитики и ETL.
    Ответ написан
    9 комментариев
  • Как в локальной сети можеть быть 2 независимых DHCP сервера?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В сети может быть любое количество DHCP-серверов. Если нет никаких ограничений, то на запрос адреса ответят все серверы, клиент будет сам решать, чей адрес ему принять, например первый полученный.
    Вариант 1. На коммутаторах может быть настроено прохождение DHCP-ответов только с определённых портов. На каждом из коммутаторов разрешаем свой сервер, запрещаем ответы по межкоммутаторному линку.
    Вариант 2. На коммутаторах добавляем к запросу опцию 82, указывающую коммутатор, порт и vlan, с которых идёт DHCP-запрос, на серверах выдаём адреса с учётом этих данных.
    Ответ написан
    1 комментарий
  • В чем разница между схемой и базой?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега MySQL
    не могу создать новую базу в идее, создается схема
    Наоборот.

    CREATE SCHEMA is a synonym for CREATE DATABASE
    https://dev.mysql.com/doc/refman/8.0/en/create-dat...
    Ответ написан
    Комментировать
  • Как изменить connection string?

    Alex_Geer
    @Alex_Geer
    System Engineer
    Потому что её нельзя изменить КАРЛ!
    Ответ написан
    2 комментария
  • Почему запрос SQL не проходит без GROUP BY?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Потому что это азы SQL: если в выражении есть и агрегирующая функция, и просто неагрегируемые значения, то необходимо явным образом указать, что нужно по ним группировать.
    Ответ написан
    3 комментария