我有一个表,该表包含16列,并有超过一百万条记录(每月大约一次批量添加约200k)。
类似这样的东西:
<template>
<div class="ion-page"> <!-- apply the "ion-page" class -->
<ion-header>
<ion-toolbar color="primary">
<ion-title>Over TRINL</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="padding">
<div v-html="legacySystemHTML"></div>
</div>
</ion-content>
</div>
</template>
大多数记录是唯一的,但是有重复项。 我需要在此表上创建一个视图,以汇总这些重复的行,并考虑每一列。 记录汇总后,我需要显示最后一个数字列的总和。 例如,我的视图需要汇总记录1和4。 预期结果是(请注意SUM为50(10 + 40)):
+----+------+------+-----+--------+----------------+
| Id | Col2 | Col3 | ... | Col 15 | Numeric Column |
+----+------+------+-----+--------+----------------+
| 1 | xxx | xxx | ... | xxx | 10 |
| 2 | yyy | yyy | ... | yyy | 20 |
| 3 | zzz | zzz | ... | zzz | 30 |
| 4 | xxx | xxx | ... | xxx | 40 |
+----+------+------+-----+--------+----------------+
我通过以下查询完成了此操作:
+------+------+-----+--------+-----------------------+------------------------------+
| Col2 | Col3 | ... | Col 15 | Sum Of Numeric Column | Amount Of Aggregated Records |
+------+------+-----+--------+-----------------------+------------------------------+
| xxx | xxx | ... | xxx | 50 | 2 |
| yyy | yyy | ... | yyy | 20 | 1 |
| zzz | zzz | ... | zzz | 30 | 1 |
+------+------+-----+--------+-----------------------+------------------------------+
此视图将作为其他视图的基础视图,这些视图需要汇总数据。这意味着它需要非常快。我的问题很简单:知道该视图需要将数据提供给其他视图,这是走的路吗?有没有一种方法可以优化此查询?我可以安排一些带有索引的东西吗?
谢谢。
答案 0 :(得分:2)
根据我的说法,您的查询已经过优化,不需要任何进一步的优化。使用CTE只会降低您的性能。
答案 1 :(得分:1)
不确定,但是您的想法是您创建2个CTE,并且仅在需要它们时才计算它们。您可以对此进行测试并将其与您自己的查询进行比较。
List.get