我有两个表具有相同的结构。这两个表都包含记录的crores。对于certian记录生成我必须采取两个表数据。有时会在查询中的where条件,有时不会有任何地方条件因为where条件是基于用户输入而建立的。所以如果没有用户给出的输入那么就没有where子句,因此将获取整个记录。为此我将获取两个表记录然后加入他们。
示例tbl strucuture
column_1 | column_2 | column_3 | column_4 | column_5
column_1 | column_2 | column_3 | column_4 | column_5
所以我使用以下查询来获取表格中的结果
select t1.* from table_1 as t1 inner join table_3 as t3 on t1.column = t3.column where condition
union
select t2.* from table_2 as t2 inner join table_3 as t3 on t2.column = t3.column where condition
order by column
请注意where where条件可能适用也可能不适用。其中table_3包含table_1和table_2中常见的记录详细信息。我可以选择使用某种东西而不是union来改善性能。如同加入。?< / p>
所以我的问题是,当我运行此查询而没有任何where条件时,它不执行,因为表包含crores记录。我也需要来自两个表的数据。非常感谢任何优化技术。
提前致谢..
答案 0 :(得分:2)
您可以使用全部或两个或其中一个选项
1)尝试对列进行索引 2)为WHERE子句设置一些默认条件 3)使用限制。
并使用“EXPLAIN”检查您的查询,但您可以优化查询 http://dev.mysql.com/doc/refman/5.0/en/using-explain.html