WackoWiki: WackoБыстродействие ...

Home Page | Изменения | Новые Комменты | Пользователи | Каталог | Регистрация | Вход:  Пароль:  

Перед нами стоит серьёзная проблема: как увеличить скорость работы wacko?


Wacko Ускорено


Предложения


  1. По структуре БД
    1. Заменить все VARCHAR -> CHAR
      • Плюсы: увеличивает скорость работы с этими полями на 50–100%.
      • Минусы: занимает заметно больше места.
      • Вывод: наверное, делать.
      • Вывод: наверное, не делать. глупости.
    2. Отказаться от медленного и глючного FTS в mysql и написать свой индексатор. Индексирование делать отдельно от сохранения. Открывать картинку 1х1 пиксель раз в день, которая будет индексировать, либо при помощи WeaselWiki:НебольшоеПериодическоеЗадание.
      • Плюсы: будет заметно быстрее сохранение, немного быстрее селекты.
      • Минусы: очень много работы.
      • Вывод: делать, но потом.
  2. Движок.
    1. Хранить отформатированный текст, кроме акшнов и ссылок (которые анврапнуть и завернуть в двойной-скобка-синтаксис).
      1. переписывается форматтер основной, чтобы вызывал не Линк, а PreLink.
      2. пишется PreLink, который анврапывает все линки, приводя их в простой, удобный для регэкспа формат
      3. пишется PostFormatter, который ничего не умеет, кроме простого Link.
      4. при сохранении пользуемся основным форматтером
      5. при выводе — PostFormatter
      6. вспомогательно — пользуемся основным, куда флажком $this->Format(.... immediate=1) добавляем вызов PostFormatter
      7. под это уже даже есть специальное поле в БД – body_r.
        • Плюсы: Все должно стать заметно быстрее.
        • Минусы: не вижу.
        • Вывод: сначала думать, потом делать.
        • Итог: сделано, привело к большому ускорению, очевидно. 0.2 секунды на страницу примерно сейчас.
  3. Экшны.
    1. Search (?)
    2. lastusers (?)
    3. pageindex
      • оптимизировать, ужасно тормозит
    4. linkstree (??)
  4. Вопросы.
    1. Что-нибудь ещё? DBAL с кэшированием sql-запросов в текстовых файлах?
      • Ку Ме: буэ...
      • Ку Куц вот думает, что не буэ. Сделать экспирейшн в 10 минут...
    2. Стоит сделать хотя-бы примитивное профилирование. Ускорять надо узкое место, а мы его не знаем.
      • Ку Куц: Сейчас узкого места не видать.





Many thanks to:




 
Файлов нет. [Показать файлы/форму]
Много комментариев (25). [Показать комментарии/форму]
Donate
Query log:
select id, tag, time, owner, user, latest, handler, comment_on, super_comment_on, supertag, lang, keywords, description from wakka_pages where supertag='wackobystrodejjstvie' and latest = 'Y' limit 1 (0.0013267993927)
select * from wakka_pages where supertag='wackobystrodejjstvie' and latest = 'Y' limit 1 (0.00128793716431)
select id, tag, time, owner, user, latest, handler, comment_on, super_comment_on, supertag, lang, keywords, description from wakka_pages where supertag='izmenenija' and latest = 'Y' limit 1 (0.0013108253479)
select * from wakka_acls where supertag = 'izmenenija' and privilege = 'read' limit 1 (0.000248908996582)
select id, tag, time, owner, user, latest, handler, comment_on, super_comment_on, supertag, lang, keywords, description from wakka_pages where supertag='novyekommenty' and latest = 'Y' limit 1 (0.0012309551239)
select * from wakka_acls where supertag = 'novyekommenty' and privilege = 'read' limit 1 (0.00022292137146)
select id, tag, time, owner, user, latest, handler, comment_on, super_comment_on, supertag, lang, keywords, description from wakka_pages where supertag='pol_zovateli' and latest = 'Y' limit 1 (0.00118207931519)
select * from wakka_acls where supertag = 'pol_zovateli' and privilege = 'read' limit 1 (0.000225067138672)
select id, tag, time, owner, user, latest, handler, comment_on, super_comment_on, supertag, lang, keywords, description from wakka_pages where supertag='katalog' and latest = 'Y' limit 1 (0.00121688842773)
select * from wakka_acls where supertag = 'katalog' and privilege = 'read' limit 1 (0.000247001647949)
select id, tag, time, owner, user, latest, handler, comment_on, super_comment_on, supertag, lang, keywords, description from wakka_pages where supertag='registracija' and latest = 'Y' limit 1 (0.00119614601135)
select * from wakka_acls where supertag = 'registracija' and privilege = 'read' limit 1 (0.000225067138672)
select * from wakka_links where from_tag='WackoБыстродействие' (0.0176060199738)
select id, tag, time, owner, user, latest, handler, comment_on, super_comment_on, supertag, lang, keywords, description from wakka_pages where supertag in ('grigorybakunov', 'metawizard', 'kukutz', 'kume', 'wackouskoreno', 'yuliashabunio', 'kusomendokusee', 'katalog', 'izmenenija', 'novyekommenty', 'pol_zovateli', 'katalog', 'registracija', '', 'wackobystrodejjstvie') (0.00723600387573)
select id, tag, time, owner, user, latest, handler, comment_on, super_comment_on, supertag, lang, keywords, description from wakka_pages where tag='' and latest = 'Y' limit 1 (0.000595092773438)
select * from wakka_acls where BINARY page_tag in ('GrigoryBakunov', 'MetaWizard', 'КуКуц', 'КуМе', 'WackoУскорено', 'YuliaShabunio', 'KusoMendokusee', 'Каталог', 'Изменения', 'НовыеКомменты', 'Пользователи', 'Каталог', 'Регистрация', '', 'WackoБыстродействие') and privilege = 'read' (2.08675718307)
end caching links (Время работы: 2.179 s)
UPDATE wakka_pages SET hits=hits+1 WHERE supertag='wackobystrodejjstvie' (0.0015881061554)
select * from wakka_acls where supertag = 'kume' and privilege = 'read' limit 1 (0.00161695480347)
select * from wakka_acls where supertag = 'wackobystrodejjstvie' and privilege = 'write' limit 1 (0.000432968139648)
select id from wakka_upload where page_id = 4298 (0.00076699256897)
select * from wakka_pages where comment_on = 'WackoБыстродействие' and latest = 'Y' order by time (0.0059540271759)
select id, tag, time, owner, user, latest, handler, comment_on, super_comment_on, supertag, lang, keywords, description from wakka_pages where supertag='login' and latest = 'Y' limit 1 (0.00159382820129)
select id, tag, time, owner, user, latest, handler, comment_on, super_comment_on, supertag, lang, keywords, description from wakka_pages where supertag='homepage' and latest = 'Y' limit 1 (0.00138378143311)
select id, tag, time, owner, user, latest, handler, comment_on, super_comment_on, supertag, lang, keywords, description from wakka_pages where supertag='textsearch' and latest = 'Y' limit 1 (0.00142192840576)
select id, tag, time, owner, user, latest, handler, comment_on, super_comment_on, supertag, lang, keywords, description from wakka_pages where supertag='romanivanov' and latest = 'Y' limit 1 (0.00136804580688)
select * from wakka_acls where supertag = 'romanivanov' and privilege = 'read' limit 1 (0.000261068344116)
select * from wakka_pagewatches where user = '38.103.63.62' and tag = 'WackoБыстродействие' (0.000202894210815)
total: 28
Время работы: 2.272 s
Использовано памяти: 2.694 Mb   SQL time: 2.13870549202