Mysql 为什么斯芬克斯的查询这么慢?按id描述订购

Mysql 为什么斯芬克斯的查询这么慢?按id描述订购,mysql,search-engine,sphinx,performance-testing,Mysql,Search Engine,Sphinx,Performance Testing,$x是一个小于1000的数字(由于max_匹配),postalcodes索引包含约110万行 查询时间:0,17秒 为什么要花这么长时间?在索引末尾有更好的查询方法吗?为什么?sphinx按原样执行该查询的唯一方法是获取所有行,对它们进行排序,然后迭代以找到所需的行 正如评论中所指出的,sphinx并不像mysql那样有索引的概念。(理论上,sphinx应用于全文搜索,使用特殊的倒排索引) 这里有一些讨论,, 关于可能的解决办法 使用反向扫描,以及可能的切断,可能会对您有所帮助 SELECT

$x是一个小于1000的数字(由于max_匹配),postalcodes索引包含约110万行

查询时间:0,17秒


为什么要花这么长时间?在索引末尾有更好的查询方法吗?

为什么?sphinx按原样执行该查询的唯一方法是获取所有行,对它们进行排序,然后迭代以找到所需的行

正如评论中所指出的,sphinx并不像mysql那样有索引的概念。(理论上,sphinx应用于全文搜索,使用特殊的倒排索引)


这里有一些讨论,, 关于可能的解决办法

使用反向扫描,以及可能的切断,可能会对您有所帮助

SELECT id FROM postalcodes ORDER BY id DESC LIMIT $x, 1

虽然如果您最终向where添加了一个“匹配项”,那么您最终将无法执行隐式排序,因此如果没有orderby,查询将无法工作,在这种情况下,reverse_scan将没有帮助

为什么?sphinx按原样执行该查询的唯一方法是获取所有行,对它们进行排序,然后迭代以找到所需的行

正如评论中所指出的,sphinx并不像mysql那样有索引的概念。(理论上,sphinx应用于全文搜索,使用特殊的倒排索引)


这里有一些讨论,, 关于可能的解决办法

使用反向扫描,以及可能的切断,可能会对您有所帮助

SELECT id FROM postalcodes ORDER BY id DESC LIMIT $x, 1

虽然如果您最终向where添加了一个“匹配项”,那么您最终将无法执行隐式排序,因此如果没有orderby,查询将无法工作,在这种情况下,reverse_scan将没有帮助

为什么?sphinx按原样执行该查询的唯一方法是获取所有行,对它们进行排序,然后迭代以找到所需的行

正如评论中所指出的,sphinx并不像mysql那样有索引的概念。(理论上,sphinx应用于全文搜索,使用特殊的倒排索引)


这里有一些讨论,, 关于可能的解决办法

使用反向扫描,以及可能的切断,可能会对您有所帮助

SELECT id FROM postalcodes ORDER BY id DESC LIMIT $x, 1

虽然如果您最终向where添加了一个“匹配项”,那么您最终将无法执行隐式排序,因此如果没有orderby,查询将无法工作,在这种情况下,reverse_scan将没有帮助

为什么?sphinx按原样执行该查询的唯一方法是获取所有行,对它们进行排序,然后迭代以找到所需的行

正如评论中所指出的,sphinx并不像mysql那样有索引的概念。(理论上,sphinx应用于全文搜索,使用特殊的倒排索引)


这里有一些讨论,, 关于可能的解决办法

使用反向扫描,以及可能的切断,可能会对您有所帮助

SELECT id FROM postalcodes ORDER BY id DESC LIMIT $x, 1

虽然如果您最终向where添加了一个“匹配项”,那么您最终将无法执行隐式排序,因此如果没有orderby,查询将无法工作,在这种情况下,reverse_scan将没有帮助

您可以添加索引以使查询更快捷,听起来像是Avinash在谈论MySQL。无法在sphinx中添加索引!您可以添加索引以使查询更快捷,听起来像是Avinash在谈论MySQL。无法在sphinx中添加索引!您可以添加索引以使查询更快捷,听起来像是Avinash在谈论MySQL。无法在sphinx中添加索引!您可以添加索引以使查询更快捷,听起来像是Avinash在谈论MySQL。无法在sphinx中添加索引!谢谢巴里汉特,狮身人面像国王!:)谢谢巴里汉特,狮身人面像国王!:)谢谢巴里汉特,狮身人面像国王!:)谢谢巴里汉特,狮身人面像国王!:)