我使用MySQL + Sphinx来存储数百万行数据。我们有网站可以查看我们数据库中的所有信息。
例如,电影标题(100,000,000行)。我需要在我们的网站上查看所有这些内容,每页 100 个标题。另外,我需要按演员受欢迎程度排序。
对于前 10 页,一切都很好。但在那之后我达到了max_matches限制。增加此限制将强制 sphinx 使用更多 CPU/RAM。
另外,我什至无法将 max_matches 设置为20,000,000。
警告:max_matches=20000000 越界;使用默认 1000
我可以使用 MySQL 执行如下查询:
SELECT * FROM titles WHERE tid >= $start AND tid <= $end
使用tid索引。但我无法按tid对其进行排序。我需要按其他表中的信息对我的标题进行排序。
访问数百万行、排序并快速完成的最佳方法是什么。请帮忙。
更新:来自狮身人面像来源:/src/searchd.cpp
if ( iMax<0 || iMax>10000000 )
{
sphWarning ( "max_matches=%d out of bounds; using default 1000", iMax );
} else
{
g_iMaxMatches = iMax;
}
10000000是极限吗?我怎样才能得到更多的补偿?