Ответы пользователя по тегу Серверная оптимизация
  • Современные инструменты для анализа sql запросов, какие они ( бренды)?

    Melkij
    @Melkij
    PostgreSQL DBA
    Касательно postgresql:
    Анализ конкретного запроса - explain (analyze,buffers) плюс немного знаний какие цифры что значат. Порой https://explain.depesz.com/ используется для визуализации цифр.
    Анализ нагрузки от запросов суммарно - contrib pg_stat_statements плюс любые какие вам нравятся выборки по полученной вьюшке. Например, топ запросов по времени выполнения, или какие запросы больше всего читают данных или какие пишут временные файлы - счётчиков для этого уже достаточно.
    Сторонние утилиты не скажут чего-то, что не скажет сама база.

    Касательно других баз - смотрите другие базы. explain есть наверное у всех, и точно у всех есть какие-то нативные метрики для запросов.
    Ответ написан
    2 комментария
  • Как ускорить выполнение SQL запроса?

    Melkij
    @Melkij
    PostgreSQL DBA
    count довольно дорогая операция.

    Сделайте отдельную таблицу для аггрегированных данных: status tinyint, count int. Поддерживать актуальность данных пачкой триггеров: на insert увеличиваете счётчик нужного status, на update уменьшаете OLD.status и увеличиваете NEW.status, на delete уменьшаете status.
    Ответ написан
    2 комментария
  • Esata на вход, возможно ли такое?

    Melkij
    @Melkij
    PostgreSQL DBA
    Вам нужен DAS, а не NAS.

    NASка с eSATA - это расширить ёмкость NAS'ки за счёт дополнительного eSATA-диска (или нескольких), но не для подключения к ПК.
    Глобально проблема в файловых системах. Если даже согласуете логику - то всё равно не сможете корректно примонтировать файловую систему.
    Ответ написан
  • Как осуществить изменение типов полей MySQL на продашене?

    Melkij
    @Melkij
    PostgreSQL DBA
    Объедините запросы по одной таблице в один запрос - быстрее перестоится.
    И мне кажется, вы забыли проставить unsigned полям. `client_id` наверняка ведь FK к стандартному автоинкременту.

    innodb всё, надеюсь?
    innodb перестраивается так:
    таблица блокируется на запись, создаётся временная таблица с новой структурой, копируются все данные, старая таблица замещается новой.
    Поэтому потерять данные сложно - в случае проблем запрос вернёт ошибку, снимет блокировку на запись в таблицу и всё. Таблица даже физически не затронута будет.

    Но read-only на некоторое пропорциональное размеру таблицы время будет.
    (mysql 5.6 умеет перестраивать без блокировки, не знаю точно, как там поставлен процесс)
    Ответ написан
  • Сервер из ноутбука стоит ли делать?

    Melkij
    @Melkij
    PostgreSQL DBA
    А почему нет?
    Если производительности достаточно и с охлаждением нормально — хороший вариант. Низкое энергопотребление, встроенный UPS.
    Ответ написан
    Комментировать