はい、可能ですが、いくつかの癖があります。Sphinxはトランザクション(begin / statement /(commit、rollback))をサポートしていますが、単一のリアルタイムインデックスに制限されています。つまり、1つのトランザクションで複数のインデックスに書き込みたい場合は、機能しません。次のmysqlテーブルとsphinxリアルタイムインデックスがあり、それらの間に直接の対応があるとします。
posts_db -> posts_rt
comments_db -> comments_rt
mysqlでは、1回のトランザクションで両方のテーブルに簡単に書き込むことができます。
START TRANSACTION;
INSERT INTO posts_db ...;
INSERT INTO comments_db ...;
COMMIT or ROLLBACK; // so far everthing ok
しかし、スフィンクスで同じことをしたい場合、それは失敗します:
START TRANSACTION;
INSERT INTO posts_rt ...;
// when executing the next statement you'll get an error
INSERT INTO comments_rt ...; // ERROR 1064 (42000): current txn is working with another index ('posts_rt')
sphinxでは、一度に1つのインデックスしか操作できません。
START TRANSACTION;
INSERT INTO posts_rt ...;
COMMIT or ROLLBACK; // so far everthing ok
START TRANSACTION;
INSERT INTO comments_db ...;
COMMIT or ROLLBACK; // so far everthing ok
そして、これは最悪です!!! シングルインデックスアプリケーションの場合は問題ありませんが、それ以外の場合は、phpまたは使用しているものを使用してトランザクションをエミュレートする必要があります。