2016-11-22 6 views
0

スフィンクス関連のテーブルからメインデータベースをきれいにする方法があるのだろうか?スフィンクス検索エンジン用のデータベースを別途

詳細:私はSphinxによってインデックスされたデータベースを持っています。私はメイン+デルタインデックスレシピを使用しましたが、それを達成するためにカウンタとウォッチリストのテーブルを追加する必要がありました。

現在、カウンターとウォッチリストのテーブルを別々のデータベースに保存し、メインデータベースをできるだけクリーンに保つことができるのだろうかと思います。

答えて

0

もちろん、両方のdbsから読むことができる限り、接続には同じクレジットカードを使用する必要があります。

sql_query = select * from maindb.table where id > (select counter from othersb.sphinxcounter) 
+0

「maindb」と「othersb」がデータベース名でもあることをSphinxはどのように知っていますか?私が知る限り、スフィンクスは実際には単一のデータベースへの接続である「情報源」を扱っています。 – Alex

+0

スフィンクスはありません! Sphinxはデータベースクエリを実行します。そのデータベースエンジンまでルーティングします。 mysqlについては、 'table_definition'の仕様を参照してください。http://dev.mysql.com/doc/refman/5.7/en/join.html sphinxの 'sql_db'は、接続のための 'デフォルトデータベース'です。 「USE」SQLコマンドを使用していると勘違いしているhttps://dev.mysql.com/doc/refman/5.7/en/use.htmlに「USE文を使って特定のデータベースをデフォルトにすることは、あなたがアクセスすることを妨げるものではない他のデータベースのテーブル。 – barryhunter

+0

私は別のIP /サーバー上にあるように2つ目のデータベース(あなたの例ではothersb)を持っていますので、資格は異なります。それはまだ可能ですか? – Alex

2

1つの接続があります。別のDBからデータを収集する場合は、フェデレーテッドテーブルを使用することができます(大きなテーブルでは遅くなる可能性があります。また、すべてからデータを収集し、XML/CSVとしてSphinxにフィードするスクリプトが良いでしょう)既存のDBのテーブルを削除して、DBをきれいにするというあなたの目的に反するものです。これらのカウンタとウォッチリストのテーブルを同じMySQLサーバ上の別のDBに置くのはなぜですか?

+0

これは解決策ですが、1つにアクセスできるときに "sql_query"宣言内の2つのデータベースに対してクエリを実行する方法はありますか? – Alex

関連する問題