【发布时间】:2019-01-07 16:03:04
【问题描述】:
我正在考虑是否应该将我的 sqlite 数据库中的表格格式化为“宽”或“长”格式。这些格式的示例包含在问题的末尾。
我预计我的大部分请求将采用以下形式:
SELECT * FROM table
WHERE
series in (series1, series100);
或以宽格式按列选择的类比。
我也预计会有大量的列,甚至足以需要增加column limit。
在选择表格布局时,是否有任何通用准则可以优化此类情况下的查询性能?
(每个示例)
“宽”格式:
| date | series1 | series2 | ... | seriesN |
| ---------- | ------- | ------- | ---- | ------- |
| "1/1/1900" | 15 | 24 | 43 | 23 |
| "1/2/1900" | 15 | null | null | 23 |
| ... | 15 | null | null | 23 |
| "1/2/2019" | 12 | 12 | 4 | null |
“长”格式:
| date | series | value |
| ---------- | ------- | ----- |
| "1/1/1900" | series1 | 15 |
| "1/2/1900" | series1 | 15 |
| ... | series1 | 43 |
| "1/2/2019" | series1 | 12 |
| "1/1/1900" | series2 | 15 |
| "1/2/1900" | series2 | 15 |
| ... | series2 | 43 |
| "1/2/2019" | series2 | 12 |
| ... | ... | ... |
| "1/1/1900" | seriesN | 15 |
| "1/2/1900" | seriesN | 15 |
| ... | seriesN | 43 |
| "1/2/2019" | seriesN | 12 |
【问题讨论】:
标签: performance sqlite