• SQL запрос как создать 9999 записей с итерацией чисел?

    @CamaroSS396
    Смотря, какой вариант MySQL, вот MariaDB, например, умеет так
    INSERT INTO table
    SELECT
    seq, NOW(), NOW(), 1, 1, seq
    FROM seq_1_to_9999

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

    smorman
    @smorman
    When In Rome do as The Romans do...
    top
    более её продвинутая и удобная версия:
    htop
    pidof
    и мн. др.

    Вот шикарный, доходчивый видос о таких утилитах:
    Полезные команды и утилиты Linux
    с 17-й минуты...

    А вот ещё свежачок статья:
    ТОП 7 аналогов утилиты top

    1. Htop
    2. Atop
    3. Nmon
    4. Vtop
    5. Bashtop
    6. Gtop
    7. Glances
    Ответ написан
    Комментировать
  • Что выбрать для самописной системы управления складом, PHP или Python?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    Лучше найдите нормального специалиста. Он вам и подскажет какой стек выбрать, и какие плюсы и минусы вас ждут. Не будьте плохим работодателем - не отсекайте себе потенциальных работников.
    П.С. Написание такой системы с нуля влетит в копеечку. Лучше все-таки присмотреться к готовым решениям и, в случае чего, нанять спецов немного подрихтовать систему.
    Ответ написан
    1 комментарий
  • Синтактическая ошибка sqlite3?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Каждую неделю пишу, что не стоит формировать запросы конкатенацией, интерполяцией и форматированием строк. Используйте prepared statements и будет вам счастье.
    Ответ написан
    3 комментария
  • Как сохранить JSON в MongoDB с сохранением связей?

    Ну или, может, какие-то другие варианты есть?

    Есть. Использовать каждую СУБД по назначению и не пытаться запихнуть реляционные данные в документную БД.

    А вообще, наверное стоит просто для независимых сущностей генерировать новые ObjectId, и протаскивать их во все зависимые сущности вместо соответствующих id. Ну т.е. не нужно пытаться решать задачу в лоб, пытаясь сконвертировать один id в другой, вам нужно сконвертировать СВЯЗЬ, а не id. Чтобы сконвертировать связь, вам не нужен оригинальный id, вам важно соединить с помощью нового ObjectId те же самые сущности, что были соединены в реляционной базе оригинальным id.
    Ответ написан
    1 комментарий
  • Как правильно сделать Mysql "точный" like запрос?

    Mouvdy
    @Mouvdy Автор вопроса
    Моим вариантом решения стало следующее:

    Можно было LIKE, но я пошел путем MATCH AGAINTS так как все статьи весят порядка 70 GB.

    А далее на PHP - strpos(); для поиска конкретного ключа.

    Так оказалось быстрее всего.
    Ответ написан
    Комментировать
  • Как увеличить % в зависимости от id?

    Stalker_RED
    @Stalker_RED
    foreach ($arBlocks as $IBLOCK_ID) {
      $multiplier = getPriceMultiplierByBlock($IBLOCK_ID);
      $newPrice = $price * $multiplier;
      // сохраняйте
    }
    
    function getPriceMultiplierByBlock($blockId) {
      $multipliers = [
        2 => 1.30,
        8 => 1.30,
        9 => 1.20,
        43 => 1.25,
        44 => 1.20,
        45 => 1.10,
        99 => 1.10,
        // ...
      ];
      return isset($multipliers[$blockId])
        ? $multipliers[$blockId]
        : 1; // если множитель не указан - единица
    }
    Ответ написан
    3 комментария
  • Где искать информации о основах основ программирования?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Петцольд - "Код Тайный язык информатики"
    Таненбаум - "Архитектура компьютера"
    Таненбаум - "Современные операционные системы"
    Таненбаум - "Компьютерные сети"
    Ответ написан
    2 комментария
  • Как можно обезопасить Postgresql от случайного удаления volume с бд в Docker?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    Сделай bind mounts:
    db:
        restart: always
        image: postgres:12.0-alpine
        volumes:
          - /data/postgres_data:/var/lib/postgresql/data/
    Ответ написан
    Комментировать
  • Стоит ли идти фронтом в гос. организацию?

    Sanes
    @Sanes
    Иди конечно. Это новый опыт. Для фриланса будет полезно поработать с бюрократией.
    Ответ написан
    Комментировать
  • Как в Ansible выполнить замену или вставку текст в файл?

    karabanov
    @karabanov
    Системный администратор
    Я бы сделал шаблон конфига и из него уже контролируемо формировал конечный конфиг.
    Ответ написан
    4 комментария
  • Блокирует ли процесс построения индексов таблицу?


    UPDATE (SET a = 'foo' where field и LIKE '%pattern%')
    Нужно было перед командой добавить "EXPLAIN ANALYSE ", тогда можно было узнать план запроса, не выполняя его.
    3. Почему UPDATE не связанный с этим полем так тормозит?
    См. выше.

    Особенно когда
    Есть таблица на 100 млн записей.

    Кроме того, что за индекс был добавлен на поле, по которому выполняется LIKE? Если B-tree, Hash, то это имеет нулевую ценность для ускорения запроса. По этому полю возможно нужен GIN индекс (pg_trgm). Или даже необходимо перепроектировать таблицы, вынеся это поле, разбив на множество записей и связью N:M. Мы не знаем что за данные в том поле.

    Для экспериментов лучше создавать ограниченный набор данных, приближенный к продакшн и тестировать на нем, вместо на 100М записей.
    Ответ написан
    6 комментариев
  • Подойдет ли ms sql express-версия для создания бд где планируется около миллиона записей?

    quality
    @quality
    admin, supp: windows,linux; ubiquiti,mikrotik.
    Добрый день. Установите локально express редакцию, создайте таблицу и поля, внесите 1 запись (+- что планируется вносить) и посмотрите запросом размер строки. И методом простой математики, узнаете ответ на ваш вопрос.
    Ответ написан
    Комментировать
  • Что конкретно нужно знать про Django для начинающего разработчика?

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

    Общие:
    • Знать как работает DNS в общих чертах, знать что такое файл hosts и зачем он нужен.
    • HTTP протокол. Знать его формат, знать статус коды
    • Быть уверенным пользователем Linux терминала. Знать как устроена файловая система линукса, зачем нужны все эти директории. Уметь пользоваться основными командами (cd, grep, ssh, lsof)<- это прям самый минимум, лучше больше. Значить что такое перенаправление ввода вывода (<,>,|)
    • Не плохо бы минимально уметь настроить Nginx. Вероятно вам не придется это делать будучи джуном, но знать как проиходит полный процесс обработки запроса как мне кажется очень полезно.
    • Мочь настроить SSL на nginx. Опять же скорее всего как джун вы этого делать не будете, но кто знает, разок попробовать чтобы просто понять.
    • Docker. Очень часто используется, советую выучить.

    Backend
    • Собственно сам питон и джанго на высоком уровне, это ваш самый основной рабочий инструмент
    • Django ORM и чистый SQL. Опять же на высоком уровне, с БД придется работать постоянно.
    • Если есть время - почитать про проектирование БД. Нормализация БД и вот это вот всё.
    • Понимать что такое авторизация и аутентификация

    FrontEnd
    Возможно вам не придется писать фронт, у вас будет для этого отдельные люди, но вероятность того что придется, она не нулевая. Зная какой нибудь JQuery ну или чистый JS вы повысите свой шанс найти работу. Ну про CSS + HTML я молчу, это даже не обсуждается, знать нужно.

    Отдельно хотел бы упомянуть по само написание кода. Хорошо бы понимать SOLID, DRY, KISS. Ну и конечно ООП, это я даже в списки не включал, это само собой разумеющиеся вещи.

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

    Как это учить?

    Придумываете идею, делаете проект, ловите баги, исправляете. Пишете пару проектов с применением того что выше описано, идете искать работу. Не стоит заниматься бесполезным чтением всего и вся, как только вы за код сядете, сразу обосретесь если будете читать голую теорию. Практика, практика и еще раз практика.
    Ответ написан
    Комментировать
  • Что значит этот код?

    @Konf
    Редактирую ответы на 2 + 2 по 4 раза
    tl;dr Распределяет события клиент <--> сервер

    Класс создаёт websocket сервер по адресу
    process.env.REGISTRY_SERVER || 'ws://localhost:9977'
    и обрабатывает все входящие сообщения следующим образом: JSON.parse(message) --> const { event, payload } = message, что значит что входящие сообщения (от клиента) должны иметь формат { event: "someEventName", payload: { ... } }. Потом это сообщение уже в виде объекта идёт в какой-то обработчик событий, который, скорее всего, распределяет этот объект по функциям-подписчикам (listeners), объявленным в других файлах. Эти функции там что-то делают с этими сообщениями, и вызывают callback sendEvent с какими-то новыми event и payload.

    То есть, если это игра, то от клиента может прийти что-то такое:
    { event: "userInput", payload: { type: "keyPress", value: "f3" } }
    Затем это через router будет передано в какую-то функцию, которая, например, выяснит что персонаж сейчас стоит на клетке, которая при нажатии ф3 должна телепортировать игрока. Ещё какая-нибудь функция сделает это, и, в конце концов, будет вызван callback sendEvent, который отправит на клиент игрока сообщение
    { event: "characterMove", payload: { x: 123, y: 532 } }
    Ответ написан
    1 комментарий
  • Ошибка sqlite3.OperationalError: no such column: cash, как решить?

    @o5a
    Значит в таблице нет такого поля cash.
    По всей видимости таблицу создавали изначально с другим составом полей, и она уже есть в базе (без cash), поэтому CREATE IF NOT EXISTS пропускается.

    Или удалите таблицу из базы, если данные не нужны: "DROP TABLE users"

    Или добавьте поле отдельно: "ALTER TABLE users ADD cash BIGINT".
    Ответ написан
    1 комментарий
  • Как настроить автоинкрементируемый столбец, чтобы при добавлении новых строк не появлялись пропуски?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Ок, представим что вы настроили подобный механизм (хотя очевидно что это сделано не просто так), и теперь у вас есть предположим пользователи с номерами 10 и 11. У каждого из них есть некоторые данные, которые привязаны к этому пользователю по id. Теперь мы удаляем пользователя под номером 10, а потом создаем нового, который займет это место. Теперь владельцем всех данных удаленного пользователя будет новый пользователь, который как бы не должен иметь к ним доступа.

    Это банальный и самый простой пример, больше для понимания... Уникальный идентификатор он на то и уникальный, что более не будет повторяться и гарантирует эту неповторяемость на уровне механизма работы бд.
    Ответ написан
    1 комментарий
  • Как оптимизировать выполнение тяжелых запросов?

    Melkij
    @Melkij
    PostgreSQL DBA
    Можно ли сделать так, чтобы запрос выполнялся дольше, но меньше загружал CPU -- может есть какие-то способы понизить приоритетность выполнения?

    Обычный nice. Процессная же модель, никаких проблем понизить приоритет конкретного процесса средствами самой ОС.

    Есть ли встроенные механизмы кэшированая, которым можно сказать, что для запроса Х нужно отдавать данные из кэша при вызове его чаще чем N минут\часов?

    Нет, кеша запросов нет. И не будет.

    ситуация когда с БД нужно собирать некоторую статистику и при этом сделать так, чтобы система не сильно тормозила

    Не смешивать OLAP и OLTP вообще. Если база важная, то у неё будет hot standby. Там статистику и считать.
    Ответ написан
    Комментировать