我有一個問題,Solr的一個實例正在查詢我的MySQL數據庫,在對該數據庫進行更新後立即刷新其索引,但Solr查詢沒有看到之前做出的更改。強制MySQL回寫
我想象的問題必須是像Solr使用不同的數據庫連接的東西,並且不知何故變更沒有被「提交」(我不使用交易,只需要撥打mysql_query
),然後另一個連接可以看見。如果我在那裏撥打足夠長的電話號碼sleep()
,它的工作時間大多數,但顯然這是不可接受的。
在繼續之前,我可以調用PHP或MySQL函數來強制寫入/更新/刷新數據庫嗎?
我有一個問題,Solr的一個實例正在查詢我的MySQL數據庫,在對該數據庫進行更新後立即刷新其索引,但Solr查詢沒有看到之前做出的更改。強制MySQL回寫
我想象的問題必須是像Solr使用不同的數據庫連接的東西,並且不知何故變更沒有被「提交」(我不使用交易,只需要撥打mysql_query
),然後另一個連接可以看見。如果我在那裏撥打足夠長的電話號碼sleep()
,它的工作時間大多數,但顯然這是不可接受的。
在繼續之前,我可以調用PHP或MySQL函數來強制寫入/更新/刷新數據庫嗎?
您可以使Solr使用SET TRANSACTION ISOLATION LEVEL = READ-COMMITTED以獲得更新數據的更及時的視圖。
您應該可以使用JDBC URL的transactionIsolation屬性來執行此操作。
我試着在連接字符串url中添加'&transactionIsolation = TRANSACTION_READ_COMMITTED',但是我不知道它是否有任何作用。你能更清楚些嗎,我是新手。 – devios1
你使用主/從配置嗎? – SteAp
我不知道,我沒有設置這個。據推測,索引是由一個主MySQL數據庫構建的。 – devios1