我必须对大型数据库执行高级搜索查询,每个数据库都有数百万个条目。
我们不想对查询进行硬编码,而是想即时提出查询。高级搜索允许您根据各种参数进行搜索 - 日期、来自其他列的 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 相关的观点。应该如何构造对如此大的表的查询?
对于这个问题的一般性质,我深表歉意,但坦率地说,这可能会有所帮助。