我有一個存儲有向圖中,像這樣的邊緣表:MySQL的互惠搜索
Table EDGES
FROM_NODE | TO_NODE | STRENGTH
1 | 1 | 8
1 | 2 | 5
2 | 1 | 4
1 | 3 | 2
3 | 4 | 1
而且我試圖尋找其與強度雙向支持> 3.在邊緣上例中,1 - > 2和2 - > 1都存在,但是,兩個方向上都不存在1 < - > 3。 1 - > 1不計數,原因很明顯。
主要的複雜情況是有超過1,000,000條邊進行搜索,並且在嘗試檢查它們是否奏效之前,我嘗試過的所有查詢都失敗了。
任何建議將不勝感激!
MySQL不支持遞歸查詢(例如Postgres的‘事先連接’)。這是你必須做的存儲過程,或者在客戶端應用程序中進行的。 –
你有沒有試過在你的查詢中調用'EXPLAIN'?你能分享關於爲你設定的指數表的信息嗎? – samuil
發佈您嘗試過的一些查詢。 – Tom