多准则搜索算法

时间:2009-08-25 15:58:29

标签: database algorithm search criteria

问题在于:我有一个huuge(在我的水平上)mysql数据库,里面有技术产品。我的数据库中有150k行产品,还有10到20个具有相同行数的表。每个表都包含很多标准。一些标准是文本值,一些是十进制的,一些是布尔值。我想为这个数据库提供一个web访问(php),每个条件都有过滤器,但我不知道如何快速地做到这一点。我开始创建一个大表,所有colums合并以避免多次连接,它很酷,比大连接更快,但仍然非常慢。对所有标准进行索引,并没有改进(我听说这是一个坏主意)。我想知道是否有一些很酷的算法可以帮助我预处理多标准搜索。任何的想法 ?

非常感谢。

2 个答案:

答案 0 :(得分:1)

如果您在SQL中尝试执行此操作感到沮丧,可以查看Lucene。它允许您进行范围搜索,全文等。

答案 1 :(得分:0)

尝试全文搜索 您可能希望尝试将文本字段汇总在一起并执行full text search

优化您的查询 对于其他列,按照您期望使用它们的频率对它们进行排序。 编写一组测试测试套件,并运行它们以了解性能。然后开始添加索引,并查看它如何影响性能。在性能变得更好的同时继续添加索引。当它变得更糟时停止。

使用说明计划 由于您没有提供SQL或表格布局,因此我无法更具体。但是使用Explain Plan命令确保您的查询命中索引,而不是进行表扫描。这可能很棘手,因为像查询中列的顺序这样的细微内容会影响索引是否有效。