从包含的联接中创建临时表+ 6500万条记录

时间:2018-07-11 00:27:49

标签: mysql sql temp-tables create-table

我正在使用Mysql,我有两个表,我在proc运行期间对其进行了多次选择,每个表都消耗了tan亿多个记录,为了加快proc的速度,我想这样做,将它们作为临时表(包含65百万条记录),请稍后在过程中使用此表。创建它。我在用 。下一个 。

typeof part1 & typeof part2

所有直接创建此临时表proc的唯一问题花费超过20分钟,如何加快速度?

1 个答案:

答案 0 :(得分:1)

对于此查询:

SELECT c.id, ct.tm_id, c.code, t1.bincode, c.AU, c.TA,
       ct.fin_amount, ct.m_id
FROM pm_customers c INNER JOIN
     client_transactions_final ct
     ON c.id = ct.id;

您可能希望在client_transactions_final(id, tm_id, fin_amount, m_id)上建立索引。这是查询的覆盖索引,因此可以提高性能。

我不认为您确实需要创建此临时表。使用正确的索引,联接的速度通常很快。当您有聚合和更复杂的查询时,临时表更有意义。我并不是说这行不通,只是这不是我想到的第一个解决方案。