1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Уменьшить время выполнения запроса

Тема в разделе "Оптимизация XenForo", создана пользователем 1981, 14.02.2012.

Загрузка
  1. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    тут все очень под большим вопросом. В том же xcache есть режим работы без проверки времени изменения файлов - разница в работе оказалась вообще не заметна десятые доли %, которые вообще в расчет можно не брать (хотя конечно все зависит от конкретного сервера, ОС и ФС, при некоторых такое количество файлов конечно будут вызывать притормаживания, но при нормлаьно настроенной системе - это совсем не самое узкое место)
    3-4К записей в таблице сессий - это уже посещалка более 1К онлайн одновременно - обычный сайт до 100-200. и на 200 записей мемори таблицы (а именно мемори таблицы должны быть для таблицы сессий) будут быстрее чем Innodb в 99% случаев даже учитывая полный лок таблиц (ну обычно innodb настроен на хостингах кривее не куда). Разница в скорости будет зависеть только от того насколько правильно настроен мускуль и какая версия установлена. Не стоит забывать что не везде стоит версия 5.5 и не везде перконовская сборка/патчи - старый innodb будет во многих случаях работать медленнее memory хоть и без блокировки всей таблицы на 4-5К даже старый innodb скорее всего будет работать быстрее memory.
    Но все сравнения innodb и мемори можно производить если только при специфической настройке Innodb. К примеру по умолчанию Innodb скидывает на диск все изменения даже в обход дискового кеша на запись - т.е. любой апдейт - это физическая запись на диск. Тогда даже на 10К записей мемори будет значительно быстрее даже с полной блокировкой таблицы.
    Подход разработчиков понятен - что у кого большой форум сами разберутся что и где поменять - а им важно чтобы нормально работало на как можно большем количестве хостингов учитывая реалии кривизны настроек innodb
     
  2. ayep

    ayep Пользователь

    Регистрация:
    20.02.12
    Сообщения:
    9
    Симпатии:
    3
    Версия XF:
    1.1.2
    И все же, какой смысл в оптимизации всего двухсот записей? Это очередной костыль, при том что из-за своей однопоточности memory-таблицы при большей нагрузке будут тормозить ещё сильнее myisam.

    Плюс к тому, хотелось бы получить конфиг innodb, ведущий себя указанным образом. Разве данные не скидываются на диск только по переполнении буфера журнала? Не видел ни одного конфига, где он был бы отключен.

    P.S. Сейчас проверил - на моей Марии по умолчанию innodb_flush_log_at_trx_commit равен 2, то есть, на диск сбрасывается, но не в обход дискового буфера.
     
  3. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    вот именно под большой нагрузкой. А 90% всех форумов - это форумы о любимой кошечке/рыбке где до большой нагрузки далеко как до солнца.
    Значит Вам просто очень повезло. Если честно - я ни разу не видел конфига который бы полностью подходил под конкретные задачи выполняемых скриптов на сервере. Ниже будет ссылка на значения по умолчанию для конфига, которые это только подтверждают.
    Вот именно на Марии. А я говорю о полностью стандартных конфигах стандартных мускулей - а там вообще стоит 1, вернее вообще ничего не стоит - а значение по умолчанию 1.
    http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit
    Так что в данном случае разговор не о специалистах - они и так разберутся что и где менять, а об обычном хостинге/стандартной установке. Ведь бывает что иннодб вообще не установлен - только Myisam, а в таких случаях однозначно лучше мемори юзать вместо myisam для сессий.
     
    ayep нравится это.
  4. 1981

    1981 Местный

    Регистрация:
    15.10.11
    Сообщения:
    273
    Симпатии:
    19
    Версия XF:
    1.1.4
    Хостер рекомендует: грамотно произвести оптимизацию таблиц/запросов/добавить индексы в вашей БД. Т.е к примеру при переборе всего 157 строк/полей - уходит 5 секунд

    Сейчас так:
    Есть стандартное решение? чтоб при обновлении все было ок?
     

Поделиться этой страницей