我使用MySQL + Sphinx存儲了數百萬行數據。我們有網站查看我們數據庫中的所有信息。Sphinx獲得數百萬條結果
例如,電影名稱(100,000,000行)。我需要在我們的網站上查看所有這些內容,每頁100個標題。另外,我需要按演員的流行度來排序。
對於前10頁,所有的作品都很棒。但之後我達到了max_matches的限制。增加這個限制將迫使獅身人面像使用更多的CPU/RAM。
此外,我甚至不能將max_matches設置爲20,000,000。
WARNING: max_matches=20000000 out of bounds; using default 1000
我可以使用MySQL來這樣執行查詢:
SELECT * FROM titles WHERE tid >= $start AND tid <= $end
使用TID指數。但我無法通過tid對它進行分類。我需要根據其他表格中的信息對我的標題進行排序。
什麼是訪問數百萬行的最佳方式,排序並快速完成。請幫忙。
UPDATE:從斯芬克斯來源:/src/searchd.cpp
if (iMax<0 || iMax>10000000)
{
sphWarning ("max_matches=%d out of bounds; using default 1000", iMax);
} else
{
g_iMaxMatches = iMax;
}
是千萬是有限制嗎?我怎麼能抵消更多?
這不建議,你可以分頁,不能? – ajreal
你是什麼意思?問題是,我不能分頁... – twoface88
你可以做的是將數百萬行分成更小的結果集,每次你只抓取1000條記錄,我的意思是,一個循環 – ajreal