Ответы пользователя по тегу MySQL
  • Как найти причину падения производительности приложения (apache, php, mysql)?

    @SergeyNN Автор вопроса
    Промежуточный ответ

    Пока ограничился такими мерами:
    - убрал профайлинг запросов (был включен всё это время оказалось еще со времен разработки);
    - поправил настройки кеша и т.п. для mysql по рекомендациям с хайлоад.ру.;
    - понизил степень сжатия gzip в апаче с 9 до 3 (это, как я думаю, самое влиятельное изменение на тормоза апача сейчас).

    При этом, как оказалось, запросов в секунду производится не 70, а 1000. Как я так раньше насчитал - не могу сказать :).
    Из этой 1000 процентов 90% - повторные попытки поставить в очередь отправку/прием данных со сторонней системы, которая в последнее время сбоит. Но это отдельная нагрузка от фоновых скриптов, она идет не через пожирающий процессор апач.

    Тем не менее, даже сейчас при этой 1000 запросов в секунду с указанными выше изменениями всё работает весьма стабильно. Загрузка проца в среднем 30-50% и только от Апача. Объем потребляемой памяти не вырос.

    Включал лог всех запросов. Время блокировок микроскопическое. Думаю, что всё же основной причиной просадок является этап работы веб-сервера.

    Конечно, нужно пересматривать архитектуру, разносить базы по чтению и записи, но это точно не в это лето.

    Обязательно отпишусь по достижению каких-либо принципиальных изменений.

    Спасибо всем за полезные советы!
    Ответ написан
    Комментировать
  • Как вывести массив из базы в определённом формате?

    @SergeyNN
    1. Получаете ассоциативный массив из запроса.
    2. Далее с помощью array_column() вытаскиваете нужную колонку title с ключом id.

    Или еще на стадии получения ассоциативного массива импользуете вариант, предложенный Exploding в его ответе.
    Ответ написан
    Комментировать
  • NULL - сколько весит?

    @SergeyNN
    Стоимость ваших трудозатрат несопоставимо выше стоимости малого объема занимаемого места. А прирост в скорости вы не заметите.
    Не заморачивайтесь.
    И да, 1 бит.
    Ответ написан
  • Что конкретно означает в вакансии строка "опыт проектирования сложных БД"?

    @SergeyNN
    Это означает, что работодатель (его айтишники) не разбираются, как спроектирована, как работает его БД. Для них это черный ящик. Никто не захотел в него до конца изучить.
    Когда знаешь как - все просто.
    Ответ написан
    Комментировать
  • Как сделать так чтобы 2 таблицы имели один ID?

    @SergeyNN
    Вам, очевидно, подойдет GUID в качестве id.
    Ответ написан
    Комментировать