Установка SphinxSE
Очень хотел попробовать SphinxSE. Кто не знает – это интерфейс работы mysql-sphinx, когда в рамках существующего соединения с mysql можно делать запросы к Sphinx. Итак, подробности установки под катом.
Зачем?
Да, безусловно можно использовать клиент для PHP/Ruby для доступа к Sphinx с помощью бинарного протокола. Но, как сказали на последних ZfConf и DevConf, сначала все новые возвожности будут внедряться в SphinxQL протокол, а только потом уже в бинаный.
Кроме того, используя одно соединение мы экономим ресурсы сервера. Я уже и не говорю, что мы можем использовать например Doctrine ORM (при небольшой доработке) да и любые другие, для доступа к Sphinx. А значит нам надо будет писать гораздо меньше кода. Тем более, что в больших проектах, так или иначе уже используется какая-либо ORM.
Как будем ставить?
К сожалению скомпилить SphinxSE ни с MySQL ни с Percona Server мне не удалось. Долго я мучался, пока не узнал, что MariaDB версии > 5.2.2 содержит в себе уже интегрированный движок SpginxSE. Т.к. последние тесты показали, что XtraDB в MariaDB быстрее даже чем у самой Percona, переход меня не смутил.
As of MariaDB 5.2.2, the Sphinx storage engine is included in the source, binaries, and packages of MariaDB. SphinxSE is built as a dynamically loadable .so plugin.
Установка SphinxSE с MariaDB на Ubuntu 10.10
0. Бекапим базы. Обязательно!
1. Удаляем предыдущие версии MySQL/Percona
Смотрим какие есть пакеты, связанные с MySQL
1 |
aptitude search mysql | grep ^i |
и удаляем их
1 2 3 |
sudo apt-get remove mysql-server mysql-client sudo apt-get purge mysql-client-core-5.1 sudo apt-get purge mysql-server-core-5.1 |
2. Получаем адреса репозитариев для своей версии ОС (http://downloads.askmonty.org/mariadb/repositories/).
Обратите внимание, версию выбираем 5.2! Далее среди различных репозитариев я предпочёл перконовский. В /etc/sources.list я добавил полученные на этой страничке адреса репозитариев:
1 2 |
deb http://www.percona.com/downloads/MariaDB/repo/5.2/ubuntu maverick main deb-src http://www.percona.com/downloads/MariaDB/repo/5.2/ubuntu maverick main |
3. Обновляем пакеты и устанавливаем саму Maria
1 2 3 |
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 1BB943DB sudo apt-get update sudo apt-get install mariadb-server-5.2 |
Проверка установки
Теперь заходим в консоль базы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
root@vbox:/etc/apt# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 34 Server version: 5.2.6-MariaDB-mariadb101~maverick-log (MariaDB - http://mariadb.com/) MariaDB [(none)]> show engines; +------------+---------+------------------------------------------------------------+ | Engine | Support | Comment | +------------+---------+------------------------------------------------------------+ | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | | MRG_MYISAM | YES | Collection of identical MyISAM tables | | FEDERATED | YES | FederatedX pluggable storage engine | | BLACKHOLE | YES | /dev/null storage engine | | CSV | YES | CSV storage engine | | SPHINX | YES | Sphinx storage engine 0.9.9 | | ARCHIVE | YES | Archive storage engine | | MyISAM | YES | Default engine as of MySQL 3.23 with great performance | | InnoDB | DEFAULT | XtraDB engine based on InnoDB plugin. Supports transactions| | PBXT | YES | High performance, multi-versioning transactional engine | | OQGRAPH | YES | Open Query Graph Computation Engine, stored in memory | | Aria | YES | Crash-safe tables with MyISAM heritage | +------------+---------+------------------------------------------------------------+ 12 rows in set (0.00 sec) |
Если вдруг движка SPHINX не будет в списке, активировать его можно следующей командой:
1 |
MariaDB [(none)]> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so'; |
В качестве бонуса мы получили поддержку движка для хранения графов: OQGRAPH, который, кстати, тоже очень интересный 🙂
Напоминаю, что движок SphinxSE – это по сути прокси к самому sphinx, который должен быть установлен в системе. Для Ubuntu его можно поставить так:
1 |
sudo apt-get install sphinxsearch |
Пример использования SphinxSE
По этой ссылке можно посмотреть пример использования SphinxSE:
http://kb.askmonty.org/v/about-sphinxse/2941/#basic-usage
Вот никак не могут они сделать репозитарий для Ubuntu Natty, а ставить для Maverick совершенно не хочется.
Спасибо за вводную. Давно уже хотел разобраться с этой интеграцией
Так вроде есть (см. скриншот).
Простите, я конечно же имел в виду репозитарии Percona.
Maria – ещё очень сырая
Моё мнение MariaDB (СУБД) – нет, а Maria(storage engine) – да, сыроватая ещё.