[devel] Mysqld CPU usage at www.sisyphus.ru

Mikhail Yakshin greycat at altlinux.org
Wed Sep 2 07:35:43 UTC 2009


2009/9/2 Денис Смирнов <mithraen at altlinux.ru>:
> MY> Если задача - "зафиксить побыстрее" - то вариант #3, как мне кажется,
> MY> упрется в минут пять работы и, скорее всего, даст результаты в виде
> MY> снижения 5-6 секунд до 200-300-400 мс. С моей точки зрения, впрочем,
> MY> 200-300-400 мс - это непозволительно много для веб-приложения, но
> MY> YMMV.
>
> Можно предложить еще один вариант -- создать отдельную таблицу, по которой
> и будет производиться поиск. В этом случае такая таблица может целиком
> жить в кэше. Или даже сделать временную таблицу (ту самую что всегда живет
> в памяти).

Это уже из серии вариантов "нужно что-то делать руками". По большому
счету - при желании - даже префиксно-суффиксные деревья как-то
делаются на SQL: в отдельную таблицу выгружаются все возможные префисы
и суффиксы (развернутые), затем запрос на поиск превращается в SELECT
с JOINом этих 2 таблиц с LIKE 'начало префикса или развернутого
суффикса%'.

> Если изобретать "круто и быстро", то никто не запрещает в том же постгресе
> написать _свой_ лексический разбор, который будет адекватен для имен
> пакетов.

Как минимум, сомневаюсь в том, что это сильно быстро; как максимум -
выражаю сомнения в том, что какой-либо полнотекстовый поиск будет
адекватен для имен пакетов.

-- 
WBR, Mikhail Yakshin


More information about the Devel mailing list