• Существует ли аналог left join в redis?

    redis - это не реляционная база. => Никаких джоинов нет.
    Но ты вполне можешь сам сделать энное количество запросов, если это очень надо.
    Но лучше переработать схему данных, чтобы в этом не было нужды.

    Если дашь пример случая, где тебе понадобился джоин - дам вариант, как от него можно избавиться
    Ответ написан
    2 комментария
  • Почему низкая скорость публикации сообщений в очередь RabbitMQ?

    @yarkin
    Всё зависит от того какие параметры отказоустойчивости применяются. В RabbitMQ работа одного канала (channel) синхронна, нет параллельной обработки команд. Если есть ожидание подтверждения от сервера и требование записи данных на диск (а RabbitMQ, если ничего не изменилось за последние годы, аггрегирует запись в батчи, чтобы уменишить кол-во IOPS на диск, то есть какое-то ожидание), то это увеличивает временя одной команды. Плюс сетевое RTT.
    Если надо посылать как можно больше - открывайте много каналов. Ради интереса попробуйте потестировать на простой очереди в памяти (это должно уменьшить время обработки одной команды).
    Ответ написан
    4 комментария
  • Как уменьшить нагрузку на Mysql запрос на очень нагруженной базе?

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

    p.s. какой объем данных? не будет ли эффективнее реализовать свои таски в оперативной памяти своего отдельного приложения, и вместо базы данных пусть твой бакэенд (или кто там) лезет к этому приложений... ни одна sql база данных ни при каких условиях не будет работать быстрее, чем твое собственное приложение с данными в оперативной памяти, а уж если тебе хватит одного потока то и на разработку решения потратишь очень мало времени
    Ответ написан
    8 комментариев
  • Как оптимизировать сложный запрос на нагруженной базе MYSQL?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    Так как из второй таблицы данные не выбираются - попробуйте (NOT EXISTS):
    SELECT 
      task.id, 
      task.dc, 
      task.provider, 
      task.type, 
      task.url, 
      task.cost, 
      task.cost_bot, 
      task.last_start_msec, 
      task.url_id, 
      task.remains, 
      task.cat 
    FROM 
      Task task 
    WHERE 
      task.status = 'active' 
      AND task.type = 'follow_profile' 
      AND task.provider = 'insta' 
      AND task.cat = 3 
      AND NOT EXISTS(
    	SELECT 1 FROM  TaskFlow flow 
    	WHERE 
    		flow.url_id = task.url_id 
    		AND flow.executor_acc_id = $acc 
      );
    Ответ написан