0

我必须对大型数据库执行高级搜索查询,每个数据库都有数百万个条目。

我们不想对查询进行硬编码,而是想即时提出查询。高级搜索允许您根据各种参数进行搜索 - 日期、来自其他列的 id,包括一次在搜索字段中给出的多个 order_id、order_item。事实上,批量订单搜索是它的主要焦点。

因此,查询框架的方式是这个应用程序有多好的核心。

我正在寻找有关我应该注意什么的建议,或优化查询的最佳实践。例如-:

在 where 条件下,应该先搜索索引更好的列,然后再搜索另一个参数 。select * from orders where order_id in (a,b,c....) and relayed=true;基本上比select * from orders where relayed=true and order_id in (a,b,c....);. 由于relayed的索引百分比只有50。它可以是真也可以是假,所以结果查询集仍然很大

另外,由于条目中有很多,这是一个好主意 - http://explainextended.com/2009/08/18/passing-parameters-in-mysql-in-list-vs-temporary-table/

提出通用示例来说明您与 select、join、where、order_by 相关的观点。应该如何构造对如此大的表的查询?

对于这个问题的一般性质,我深表歉意,但坦率地说,这可能会有所帮助。

4

1 回答 1

0

在具有数百万条目的大型数据库上执行高级搜索查询

并动态优化查询以获得最佳结果,这是一个好主意

http://sphinxsearch.com/

于 2013-03-08T10:43:34.840 回答