我必须对大型数据库执行高级搜索查询,每个数据库都有数百万个条目。
我们想要在运行中提出查询,而不是硬编码查询。高级搜索允许您根据各种参数进行搜索 - 日期,其他列的ID,包括多个order_id,order_item一次在搜索字段中给出。事实上,批量订单搜索是它的主要关注点。
因此,构建查询的方式是这个应用程序有多好的核心。
我正在寻找有关我应该注意的内容或优化查询的最佳做法的建议。对于eg-:
在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....);
好得多。正如中继的索引百分比只有50.它可以是true或false,因此生成的查询集仍然很大
同样由于条目中有大量内容,这是一个好主意 - http://explainextended.com/2009/08/18/passing-parameters-in-mysql-in-list-vs-temporary-table/
提出通用示例来说明您与select,join,where,order_by相关的观点。如何构建对这种大型表的查询?
我为这个问题的一般性质道歉,但坦率地认为这可能会有所帮助。