2016-11-22 36 views
0

我想知道是否有任何方法可以保持主要數據庫清潔任何Sphinx相關表?Sphinx搜索引擎的單獨數據庫

詳情:我有一個由Sphinx索引的數據庫。相當大,我使用主+三角洲索引配方,但爲了實現這一點,我不得不爲計數器和監視列表添加額外的表格。

現在我想知道是否可以將計數器和監視列表放在一個單獨的數據庫中,並儘可能保持主數據庫的清潔。

回答

0

當然,您可能需要使用相同的信用來連接,所以只要用戶可以從兩個dbs讀取。

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

Sphinx如何知道「maindb」和「othersb」甚至是數據庫名稱?據我所知,Sphinx處理實際上與單個數據庫連接的「來源」。 – Alex

+0

獅身人面像不!獅身人面像只是運行數據庫查詢。它直到數據庫引擎的路由。對於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

我想要第二個數據庫(在您的示例中爲'othersb')位於不同的IP /服務器上,因此憑據將有所不同。它仍然有可能嗎? – Alex

2

有一個連接。如果你想從另一個數據庫收集數據,你可以使用聯邦表(它可以用大表緩慢,最好是一個腳本,收集所有數據並將Sphinx作爲XML/CSV提供),但你仍然需要創建現有的數據庫中的表,所以它擊敗了你的數據庫'乾淨'的目的。爲什麼不把這些計數器和監視列表放在另一個數據庫中的同一臺MySQL服務器上?

+0

這可能是一個解決方案,但是如何在一個「sql_query」聲明中運行對兩個數據庫的查詢,當你可以訪問一個單一的數據庫? – Alex