即时优化查询以获得最佳结果

时间:2013-03-08 10:26:45

标签: mysql

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

我们想要在运行中提出查询,而不是硬编码查询。高级搜索允许您根据各种参数进行搜索 - 日期,其他列的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相关的观点。如何构建对这种大型表的查询?

我为这个问题的一般性质道歉,但坦率地认为这可能会有所帮助。

1 个答案:

答案 0 :(得分:0)

在每个包含数百万条目的大型数据库上执行高级搜索查询

并动态优化查询以获得最佳效果,最好使用

http://sphinxsearch.com/