【发布时间】:2012-09-25 19:36:09
【问题描述】:
我有一个包含 80lacs 记录的主表(比如 TABLE : MAIN_TABLE) 我想触发许多查询,在这些查询中我需要找到与 6 个月内注册的大约 10 个条件匹配的所有记录(11 lacs)
我已经在 2 列 (col1, col2) 上创建了一个复合索引,但是查询仍然在执行大约 30-50 秒的通话时间。
此表上有大约 12 个索引和大约 60 列。 当我使用 explain 时,它显示将检查 5102 行及其使用索引。
我使用的解决方案:我决定创建一个触发器,它将插入一个新表(MAIN_TABLE_ACTIVE),其中只有一个索引和最近 6 个月的记录和有限的列(12) 当我对此表进行查询时,结果将按 2-6 秒的顺序出现。
问题:这是我使用 11lacs 表而不是 80lacs 表的最佳方法吗?
缺点:触发器的开销:-(
建议任何新方法或请评论我解决此问题的方法。
【问题讨论】: