• На чем лучше делать чат-бота для VK?

    На чем лучше умеете программировать + какая готовая библиотека для создания ботов больше нравится. Скорость работы все равно упрется в ограничения VK по кол-ву запросов.
    Ответ написан
    Комментировать
  • Как правильно делать JOIN таблиц?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Есть ли разница джоинов этих двух строк, с точки зрения нагрузки на БД?

    Оба запроса - INNER JOIN. Если не используется STRAIGHT_JOIN, то сервер гарантированно построит для обоих запросов один и тот же план выполнения.

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

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Элементарно:

    delete from users where accountID between 1001 and 1005;


    MS SQL fiddle
    Ответ написан
    Комментировать
  • Как сделать систему уровней?

    PeterLS
    @PeterLS
    Программист
    Храни количество заработанных очков (exp).
    Соответственно, при выборе данных из БД всегда сможешь быстро получить уровень (тут уже пиши формулу какую хочешь).

    Например:
    $exp = 487; // количество очков опыта у отдельного пользователя
    $step = 50; // шаг = 50 очков опыта
    $level = floor($exp / $step); // быстро посчитаешь уровень.


    Если уровень нужен часто, то можешь помимо очков опыта хранить и посчитанное значение (пересчитывай его процедурой в БД при обновлении значения очков)
    Ответ написан
    Комментировать
  • Как сделать update записи вместе с select из другой таблицы?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    MySQL:
    UPDATE Admins A
    JOIN Users U ON U.UserID = A.AdminID
    SET A.password = U.password
    WHERE U.UserID = 123;


    Test MySQL here

    MS SQL:
    UPDATE Admins
    SET Admins.password = U.password
    FROM Admins A JOIN Users U ON U.UserID = A.AdminID
    WHERE A.AdminID = 123;


    MS SQL Fiddle
    Ответ написан
    2 комментария
  • Как оптимизировать запись в файл .xls?

    gscraft
    @gscraft
    Программист, философ
    И Excel спокойно поглощает такое количество строк? Там вроде около миллиона строк, но Excel не предназначен для этого, если массив данных очень большой, то работать с ним лучше через СУБД.

    Способов оптимизации много, но универсальных путей не так много, не зная бизнес-требований, структуры данных сложно сказать точнее. Из общего. Во-первых, да, брать данные порциями, например, по 10к или 50к строк. Во-вторых, не брать данные повторно, кэшировать (вряд ли у Вас меняются все данные каждый раз), сохраняя срезы Excel или денормализацией. В-третьих, оптимизировать структуру данных и / или запросы. В этом плане Doctrine или другой движок едва ли играют роль, тем более Вы используете конструктор запросов. В-четвертых, если память грузит запись в Excel, можно отказаться от движка (опять же, неизвестно, используете ли такой?), писать вручную в XML-шаблон, упаковывая в Excel опять же руками.
    Ответ написан
    8 комментариев
  • У какого десктопного Linux минимальные требования к RAM?

    @kandrash
    Кратко о себе
    Много ответов, но все чушь. Вас не интересует линукс, вам нужны приложения. Ой, хром 4Гб отожрал, ой IDE 2Гб требует.

    И что? Помогло вам, что на линуксе 50МБ сэкономили?
    Ответ написан
    Комментировать
  • Когда полезно использовать генератор, если объем данных небольшой?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Эффективность здесь вообще не при чем.
    Генератор - это синтаксический сахар
    То есть вопрос вообще не про эффективность

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

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

    DevMan
    @DevMan
    спросите у многих, кто это говорит.

    у них совершенно разные ниши, хоть и частично пересекаются.
    вед–дев – у них паритет. и выбор между языками – тупо вкусовщина.
    прикладные вещи – однозначно питон.

    лично я для web–дев/бэкэнд предпочитаю слоника.
    Ответ написан
    3 комментария
  • Добавление даты и время в таблицу (в момент запроса)?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега SQL
    Седой и строгий
    select *, current_timestamp from some_table;
    Ответ написан
    2 комментария
  • Как работать с curl?

    @d-sem
    Надо добавить

    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    Ответ написан
    3 комментария
  • Зачем нужны alias-ы в БД?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Основное назначение алиасов - устранение неоднозначности при наличии одноимённых таблиц/полей.

    Дополнительно - удобство именования, особенно когда оригинальные имена длинные.

    Если ещё смыслы, но они минорны.
    Ответ написан
    Комментировать
  • Как построчно обрезать текст?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    <?php
    $text = 'Это первая строка текста.
    А это вторая строка.
    А здесь третья строка.';
    
    // split to rows
    $rows=explode(PHP_EOL, $text);
    
    //get first 2 rows
    $first2rows = array_slice($rows, 0, 2);
    
    //implode to new text
    $newtext = implode(PHP_EOL,$first2rows);
    
    var_export($newtext);


    Run PHP here
    Ответ написан
    1 комментарий
  • Как создать столбец, который будет произведением двух других?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Зачем что то добавлять если можно посчитать?
    CREATE TABLE `test`.`test_table` (
      `id` INT NOT NULL,
      `price` INT NULL,
      `count` INT NULL,
      PRIMARY KEY (`id`));
    
    SELECT id, price, count, (price * count) as total FROM test.test_table;


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

    И соответственно туда вы вставляете только в момент оформления заказа
    Ответ написан
    Комментировать
  • Laravel как одну коллекцию добавить 2 коллекции?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Начинать нужно с чтения документации https://laravel.com/docs/8.x/collections
    Если потом уже что-то не понятно - спрашивать, показывая, что не получилось.
    Ответ написан
    1 комментарий
  • Как запускать docker сервисы чтобы права на volumes принадлежали пользователю - хосту?

    В самом Dockerfile у них прописан явно юзер:
    RUN mkdir /srv/app && chown 1000:1000 -R /srv/app

    Скопируйте себе этот Dockerfile и измените в нём 1000 на uid текущего пользователя хоста. Укажите этот изменённый Dockerfile в docker-compose.yml:
    services:
      strapi:
        build:
          context: .
          dockerfile: Dockerfile-edited
    Ответ написан
    Комментировать
  • Как найти какой php делает редирект?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Если дело в битриксе, то надо искать вызовы функции LocalRedirect. Добавьте логирование в тело функции (запись в файл вывода debug_backtrace).

    LocalRedirect объявлена в файле bitrix/modules/main/tools.php
    Ответ написан
    Комментировать
  • Помощь с запросом MySQL?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT car_model.* 
    FROM car_model 
    JOIN car_mark ON car_model USING (id_car_mark)
    WHERE car_mark.name='AC'
    Ответ написан
    Комментировать
  • Что это за параметр в настройках NGINX?

    Это регулярное выражение: ^(.+)\.(\d+)\.(css|js)$

    ^ — начало строки
    ( ) — то, что внутри скобок, отдельно попадёт в переменные $1, $2, .. $N
    . — любой символ
    + — определяет количество предшесвтующего ему: «1 или несколько»
    .+ — один или несколько любых символов
    \. — буквально точка обыкновенная, point vulgaris, без спец. значения
    \d — цифра. \d+ одна или несколько цифр
    (css|js) – или "css" или "js"
    $ — конец строки

    Таким образом эта регулярка совпадёт, скажем, со строкой
    /css/main.min.682375227.css и заменит её строкой без числа:
    /css/main.min.css

    Наверное, так борются с кэшированием в браузере. В HTML можно писать с любым числом, и браузер подумает, что это что-то новое. А сервер всегда отдаст один и тот же main.min.css, какой там у него есть.
    Ответ написан
    1 комментарий
  • Как правильно вписать переменные в массив?

    mmmaaak
    @mmmaaak
    Я бы начал с изучения основ и синтаксиса языка
    Ответ написан
    Комментировать