Записи с тэгом ‘MySQL’

Sphinx, часть 3. Real-Time индексы

Monday, November 8th, 2010

— Мы забрели в зону с сильным магическим индексом, — объяснил он, — Когда-то давно здесь образовалось мощное магическое поле.
— Вот именно, — ответил проходящий мимо куст.

— Терри Пратчетт «Цвет Волшебства»

Минувшим летом команда Андрея Аксёнова осчастливила комьюнити новой версией Sphinx за нумером 1.10-beta. Среди прочих полезных нововведений вроде строковых атрибутов и многопоточного поиска была фича, название которой заставило моё сердце биться быстрей – RT-индексы. При более подробном изучении документации возбуждение поугасло, ибо ожидания мои, видимо, были сильно завышенными. Но тем не менее шаг вперёд сделан. И какой шаг! Это то, чего старому Сфинксу очень не хватало, отчего до сих пор в некоторых задачах приходилось пользоваться старым-добрым, но сильно тормознутым LIKE.

Итак, мы получили быстрый поиск по индексу, обновляющемуся в реальном режиме времени. Но кармические законы вселенной подсказывают, что необходимо при этом что-то и отдать и от чего-то отказаться. А отказаться придётся от префиксов и инфиксов (будем надеяться на будущие версии), от MVA-атрибутов (аналогично), а также подготовиться к тому, что индекс обновлять нам придется вручную. Последний пункт означает, что при добавлении записи в базу надо сделать INSERT в индекс, при удалении из базы – DELETE из индекса, а при изменении записи в таблице – REPLACE всё в тот же индекс. Неудобно, но за всё надо платить. Раньше в такой ситуации пришлось бы переиндексировать весь индекс целиком или хотя бы дельту.

Посмотрим более детально.

(more…)

Метки: , ,
Категория: MySQL, Web-dev | 3 Комментариев »


Работа с сессиями в Perl

Monday, May 24th, 2010

Механизм сессий позволяет производить аутентификацию пользователей и сохранять некоторые данные между сеансами работы каждого пользователя в Web. Этот метод обладает рядом преимуществ перед вариантом с хранением всей пользовательской информации в cookies, потому как при этом все данные хранятся на сервере, а от пользователя необходимо получать только индентификатор сессии.

В Perl работу с сессиями обеспечивает модуль CGI::Session. Он позволяет сохранять данные о сессиях в файлах или в базе данных. Подерживаются в том числе такие вещи, как DB2 или SQLite. Нас же интересует в основном MySQL (CGI::Session::Driver::mysql).

(more…)

Метки: ,
Категория: MySQL, Perl, Web-dev | 6 Комментариев »


Восстановление пароля от MySQL

Thursday, April 1st, 2010

Незачем придумывать предыстории и искать подоплёку. Есть простая проблема – у нас есть MySQL, но нет пароля к пользователю root или к любому пользователю “with grant option”.
Решается задача так:

(more…)

Метки:
Категория: MySQL | Нет комментариев »


Почтовый сервер — в каждый дом. Exim+Dovecot+SpamAssasin+ClamAV+PostfixAdmin

Saturday, February 20th, 2010

“А если вы на него бочку катите, то это уже контейнерная перевозка. Этим Трансагентство занимается.”
— Печкин

exim

Как ясно из названия — мы будем заниматься организацией собственного почтового сервера, главным компонентом которого будет MTA Exim, который будет заниматься приемом-отправкой почты и скармливанием её различным фильтрам и MUA Dovecot. Почему именно Exim? Это вопрос скорее философский. Мне недавно подсказали, что он хорош. Я его потрогал, и он действительно оказался хорош. Он хорошо задокументирован (хотя н русском языке инфы мало, здесь правит бал всё-таки Postfix), секьюрен, производителен, лёгок в настройке. В общем, правильный выбор.

Данные о пользователях и вспомогательные таблицы будут храниться в MySQL. Для управления доменами и виртуальными почтовыми акаунтами будем использовать postfixadmin. Да и структуру базы данных будем использовать от этого проекта. Postfixadmin, конечно, предназначен обычно для работы с MTA Postfix, но это непринципиально. Он даже и догадываться у нас не будет, что подоткнут к Exim’у. Он достаточно удобен и лёгок в настройке.

После того, как всё заработает, подключим SpamAssassin и ClamAV для проверки на спам и вирусы.

И всё это добро будет у нас стоять на Ubuntu 9.10.

(more…)

Метки: , , ,
Категория: Linux | 28 Комментариев »


Sphinx, часть 2: Perl API

Thursday, December 31st, 2009

perlsphinxВ прошлой статье «Sphinx: начало» я описал процедуру установки Sphinx и показал, как создавать полнотекстовые индексы на примере базы данных с книгами. Теперь нам надо понять, как использовать эти индексы в Perl-приложении. Это может быть любое Perl-приложение, но в основном Sphinx Perl API находит применение в Web CGI. Почему именно в Perl? Да потому что про PHP и так написано везде и помногу, и, кроме того, Perl – это наше всё.
(more…)

Метки: , ,
Категория: MySQL, Perl, Web-dev | 4 Комментариев »


Sphinx, часть 1: Начало

Friday, December 11th, 2009

sphinxSphinx – это отличный полнотекстовый поисковый движок, который легко интегрируется в любое web-приложение и не требует особых усилий по установке и настройке. Распространяется он по лицензии GPL2 и в настоящее время поддерживает СУБД MySQL и PostgreSQL, а также работу с XML-файлами. Название Sphinx принято расшифровывать как SQL Phrase Index, а автором его является наш соотечественник Андрей Аксёнов.
Но хватит на этом теории. Посмторим, как приручить этого мифического зверя…
(more…)

Метки: , , ,
Категория: Linux, MySQL, Web-dev | 2 Комментариев »