• Не видит класс PHP что делать?

    @Vitsliputsli
    BI Studio, автолоадер тут не при чем, но если используете namespace, то указывайте его в пути к вызываемому классу (напрямую, либо через use).
  • Калькулятор возвращает неправильный результат?

    @Vitsliputsli
    Black_Fire_2, для чего? Если хотите через обратную польскую нотацию. То, сперва собственно в нее переведите выражение, алгоритм сортировочной станции даже в Википедии описан очень хорошо.
  • Калькулятор возвращает неправильный результат?

    @Vitsliputsli
    Black_Fire_2, например, вам надо вычислить 1+2*4, в обратной польской нотации это будет:
    1,2,4,*,+
    Вычисление:
    - число (1), кладете в стек
    - число (2), кладете в стек
    - число (4), кладете в стек
    - оператор, забираете из стека 2 последних числа и применяете к ним оператор, получаете 8, кладете 8 в стек.
    - оператор, забираете из стека 2 последних числа (1 и 8), применяете к ним оператор, получаете 9
  • Откуда программа должна знать id для поиска обьекта c его помощью?

    @Vitsliputsli
    harliy, да, бывают и такие решения, например ищете в Эластике, он отдает id, а уже по id забираете данные из основной базы. Либо, так или иначе уже знаете id, как описал Василий Банников.
  • Как увеличить скорость загрузки данных в Mysql?

    @Vitsliputsli
    Dimonchik,
    4м это гулькин нос

    как насчет 200м, или 200*2 )

    Какая разница? Думаете, на 200м InnoDb вдруг станет быстрее?
    И если уж смотреть, что будет при деградации на больших объемах, лучше на 1000М и длинных строках, но это уже другой вопрос.

    Кликхаусы и Постгре используем конечно, но вот надо и в Мускуле кой для чего держать

    Аналитическая СУБД вообще не замена для классической, а Postgre принципиально не отличается по производительности от MySQL.

    я выяснял этот вопрос, поэтому знаю о чем пишу, но - повторю, может на каких-то данных и с подкрутками окажется не так

    Выясняли практически? Интересно, почему так теоретически, вероятно InnoDB медленней размещает каждую отдельную строку в индексе, поэтому когда строка уже размещена копирование скопом проходит быстрее, но очень интересны подробности.
    "Подкрутки" это тоже отдельный вопрос, если как в примере описанном в вопросе, то класть на устойчивость это не вариант. Можно, конечно, вырубить binlog, но это только частный случай, в большинстве продуктовых систем это тоже невозможно.
  • Отказоустойчивое взаимодействие с медленным внешним сервисом?

    @Vitsliputsli
    Сколько разных сущностей вы получаете за сутки? Т.е. сколько разных запросов?
    Какой интервал между запросами к одной и той же сущности, среднее?
  • Отказоустойчивое взаимодействие с медленным внешним сервисом?

    @Vitsliputsli

    увеличение кол-ва доступных php-fpm лишь немного отодвигает момент падения.


    Из-за чего происходит падение? И что падает?
    При недостатке воркеров задачи должны становиться в очередь.
    Если тупо в лоб решать, fpm воркеров вам нужно не бесконечно много, а ровно столько, чтобы компенсировать лаг ответа. Если они ничего не делают, почему бы их не сделать много ровно в том пуле что отвечает за долгие запросы. Упираетесь в память?
  • Отказоустойчивое взаимодействие с медленным внешним сервисом?

    @Vitsliputsli
    Если обобщить, fpm процесс кладёт задание в очередь. По мере обработки очереди ответ поступает на фронт.
    Конкретная реализация зависит от ваших хотелок. Очередь в бд или в брокере. Polling на фронте или websocket.
    Обработку очереди лучше сделать асинхронно, иначе опять наплодите процессы в ожидании.
  • Как увеличить скорость загрузки данных в Mysql?

    @Vitsliputsli
    Dimonchik, похоже вы правы, во-первых перекидывание данных между движками бесплатное - хз почему, во-вторых инсерты в InnoDB на порядок медленнней чем в MyISAM. Получается схема реально будет быстрее. Не пробовал загрузчиком из csv, но не думаю, что там будет чтото разительно другое.
    На 4M коротких строчках, только pk ничего более (MySQL 5.7):
    -- из MyIsam в InnoDb - 16s
    -- из InnoDb в InnoDb - 19s
    -- из InnoDb в MyIsam - 11s
    -- inserts из файла в MyIsam - 5m41s (имеется ввиду mysql < file.sql)
    -- inserts из файла в InnoDb - ~54m (через 27m на 50% я задолбался ждать)
    Причем неважно как данные перебрасывать alter engine или insert select, время тоже. При повторном тесте, примерно те же самые результаты.
    Спасибо большое, очень интересная штука. Есть над чем подумать.
  • Зависит ли производительность базы данных от количества записей?

    @Vitsliputsli
    mayton2019, да, в CBO делают прямо настраиваемые параметры стоимости чтения страниц с диска. Но сейчас много, если не большинство, систем где упор делается на работу в оперативной памяти, и соответственно расчеты СВО должны быть другие, но я без понятия, как он учитывает загружена страница в память или нет.
  • Как увеличить скорость загрузки данных в Mysql?

    @Vitsliputsli
    ubirust, любой язык программирования в помощь. Но сперва проверьте, что это действительно быстрее, не факт что ограничение в этом.
  • Зависит ли производительность базы данных от количества записей?

    @Vitsliputsli
    mayton2019, попробовал на MySQL, просто несколько запросов, особо не заморачивался. При выборке по pk, он всегда идет по pk. При выборке по некластеризованному неуникальному индексу, он также идет по нему, но если в таблице уже не 1 строчка (то 4, то 8, причем не вижу связи с длиной) он делает full scan, если % нужных строк падает примерно до 30 он возвращается к индексу.
    Вероятнее всего, когда мы делаем full scan нам все равно нужно найти 1 страницу, а ее логично получать по pk, поэтому для единственного значения дешевле всегда идти по pk. Для неуникального индекса сложнее, хз как он расчитывает стоимость, но ради единственной строки он предпочтет индекс. Но это все в MySQL.
  • Как увеличить скорость загрузки данных в Mysql?

    @Vitsliputsli
    ubirust, блин, т.е. это нормально...
    На что накладываются ограничения? Исходя из этого, уже можно искать решение. Если СУБД медленно жует отдельные запросы - отправляйте батчем, т.е. вместо:
    INSERT INTO `orders` VALUES (что нужно вставить);
    INSERT INTO `orders` VALUES (что нужно вставить);
    INSERT INTO `orders` VALUES (что нужно вставить);
    чтото вроде этого:
    INSERT INTO `orders` VALUES (что нужно вставить),(что нужно вставить),(что нужно вставить);
  • Почему MariaDB отжирает все больше и больше памяти?

    @Vitsliputsli
    Ярослав, для ваших прикидок: сейчас buffer_pool реально занимает почти 9Мб, причем даже с неиспользуемым старьем.
  • Как увеличить скорость загрузки данных в Mysql?

    @Vitsliputsli
    Dimonchik, скорее всего медленней чем readfromfile в MyISAM. Но, быстрее, чем залить сперва в MyISAM, а потом перекидывать все в InnoDB. Либо я чтото не понимаю в этой хитрой схеме...
  • Как увеличить скорость загрузки данных в Mysql?

    @Vitsliputsli
    ubirust, просто 5 вставок в секунду, это прям настолько мало, что дело не в настройках СУБД (если они дефолтные, конечно), не в заливки из csv т.п. Может у вам уже диск отказывает?
  • Как увеличить скорость загрузки данных в Mysql?

    @Vitsliputsli
    Заливка из файла разумеется быстрее.
    Но "MyISAM потом замена на innodb"? Вы как считаете время? До момента когда все данные будут доступны в InnoDB или только заливка в MyISAM?
    MyISAM и InnoDB по-сути разные СУБД, поэтому при смене движка, понадобится данные забрать из MyISAM загрузить его на уровень MySQL, потом залить в InnoDB, это гораздо медленней, чем пересоздание таблицы внутри движка. Поэтому я не понимаю, как такое может быть быстрее.
  • Как увеличить скорость загрузки данных в Mysql?

    @Vitsliputsli
    а вы запускаете вставку на сервере? или все это в процессе заливается на сервер по медленному интернету?
  • Почему MariaDB отжирает все больше и больше памяти?

    @Vitsliputsli
    Ярослав,
    innodb_buffer_pool_size - всего 200метров (далеко не гиг, до которого разрастается).

    Ну как же 200Mb, когда при сожранных 302Mb, мы видим:
    @@innodb_buffer_pool_size: 268435456
    и в другом месте в страницах:
    Buffer pool size 16130

    Так, что у вас просто buffer pool догоняется до какого-то значения, которое явно не 200Mb. Установите то значение, которое вам больше всего подходит.
  • Почему MariaDB отжирает все больше и больше памяти?

    @Vitsliputsli
    И, кстати, да, если вы выделили под buffer pool 1G, не стоит удивляться что СУБД будет использовать этот 1G. Вопрос, что же она там наразмещает интересный, но уже теоретический.