一个海量数据库设计问题
2009-02-24 11:07
169 查看
有这样一堆数据,基本格式是这样的:
Group 1
Class 1 - 984 Points
Point 1
y: 346.102652 x: 140.217103 scale: 51.539823 orientation: -0.980912
Descriptor:128 dimensions.
0 2 0 0 3 105 38 2 62 5 1 0 0 22 53 159 159 0 0 0 0 0 3 159 94 0 0 0 0 0 1 80 13 9 5 22 30 61 29 8 147 18 2 1 0 15 102 159 93 0 0 0 0 0 52 159 27 0 0 0 0 0 1 45 21 10 3 9 4 0 0 0 159 35 1 1 0 0 1 50 110 9 0 0 0 0 5 50 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 22 0 0 0 0 0 0 4 12 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
Point 2
y: 346.102652 x: 140.217103 scale: 51.539823 orientation: -1.855678
Descriptor:128 dimensions.
139 149 16 6 0 0 0 0 149 149 1 0 0 0 0 0 45 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 64 4 2 0 0 23 54 149 144 1 0 0 0 0 43 127 51 6 0 0 0 0 8 0 0 0 0 0 0 0 0 26 5 4 2 8 18 96 72 116 149 66 6 6 3 3 25 25 149 40 0 0 0 0 0 0 6 1 0 0 0 0 0 0 0 0 1 8 18 6 0 0 20 11 3 6 3 0 0 1 26 2 0 0 0 0 0 0 0 0 0 0 0 0 0
......
Point 984
y: 239.457105 x: 417.113207 scale: 0.898385 orientation: 1.633814
Descriptor:128 dimensions.
131 28 0 0 0 0 0 9 131 83 9 12 20 9 2 15 3 9 10 50 131 31 1 3 15 59 27 15 18 3 2 13 125 54 0 0 0 0 0 1 131 100 7 8 13 4 1 8 13 7 5 28 131 62 2 3 18 22 9 7 38 27 6 8 129 23 0 0 0 0 0 8 131 14 0 0 5 4 4 16 30 1 0 0 70 131 25 11 2 0 0 0 20 95 52 6 91 14 0 0 0 0 0 7 131 55 0 0 0 0 3 10 56 24 1 10 17 72 23 11 0 0 0 24 34 79 22 0
Class 2
...
Class 3
...
Class N
这样的Group有几万个,每个Group里有10个左右的Class,每个Class的Points数量是不定的(一般为100~1000)。程序中最常用的操作是提取同一个Group中的所有数据,与外部一组结构相同的数据进行比较。对于这样的需求,如何设计数据库才能获得最好的性能?最简单的设计方法当然是Group,Class,Points分别设计为一个表,三者直接通过外键进行关联,但这样的设计方法将导致Points的记录数达到上千万条,这简直是不可想象的。如果哪位兄弟有类似的项目经验,还请多多指教。
Group 1
Class 1 - 984 Points
Point 1
y: 346.102652 x: 140.217103 scale: 51.539823 orientation: -0.980912
Descriptor:128 dimensions.
0 2 0 0 3 105 38 2 62 5 1 0 0 22 53 159 159 0 0 0 0 0 3 159 94 0 0 0 0 0 1 80 13 9 5 22 30 61 29 8 147 18 2 1 0 15 102 159 93 0 0 0 0 0 52 159 27 0 0 0 0 0 1 45 21 10 3 9 4 0 0 0 159 35 1 1 0 0 1 50 110 9 0 0 0 0 5 50 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 22 0 0 0 0 0 0 4 12 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
Point 2
y: 346.102652 x: 140.217103 scale: 51.539823 orientation: -1.855678
Descriptor:128 dimensions.
139 149 16 6 0 0 0 0 149 149 1 0 0 0 0 0 45 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 64 4 2 0 0 23 54 149 144 1 0 0 0 0 43 127 51 6 0 0 0 0 8 0 0 0 0 0 0 0 0 26 5 4 2 8 18 96 72 116 149 66 6 6 3 3 25 25 149 40 0 0 0 0 0 0 6 1 0 0 0 0 0 0 0 0 1 8 18 6 0 0 20 11 3 6 3 0 0 1 26 2 0 0 0 0 0 0 0 0 0 0 0 0 0
......
Point 984
y: 239.457105 x: 417.113207 scale: 0.898385 orientation: 1.633814
Descriptor:128 dimensions.
131 28 0 0 0 0 0 9 131 83 9 12 20 9 2 15 3 9 10 50 131 31 1 3 15 59 27 15 18 3 2 13 125 54 0 0 0 0 0 1 131 100 7 8 13 4 1 8 13 7 5 28 131 62 2 3 18 22 9 7 38 27 6 8 129 23 0 0 0 0 0 8 131 14 0 0 5 4 4 16 30 1 0 0 70 131 25 11 2 0 0 0 20 95 52 6 91 14 0 0 0 0 0 7 131 55 0 0 0 0 3 10 56 24 1 10 17 72 23 11 0 0 0 24 34 79 22 0
Class 2
...
Class 3
...
Class N
这样的Group有几万个,每个Group里有10个左右的Class,每个Class的Points数量是不定的(一般为100~1000)。程序中最常用的操作是提取同一个Group中的所有数据,与外部一组结构相同的数据进行比较。对于这样的需求,如何设计数据库才能获得最好的性能?最简单的设计方法当然是Group,Class,Points分别设计为一个表,三者直接通过外键进行关联,但这样的设计方法将导致Points的记录数达到上千万条,这简直是不可想象的。如果哪位兄弟有类似的项目经验,还请多多指教。
相关文章推荐
- 使用SQL Server Business Intelligence Development Studio 2005设计报表模型时的一个容易被忽视的问题
- [全程建模]一个项目UML设计中的几个问题
- 一个一对多问题的设计模型
- 最近开发一个表格报表设计器,在开发过程中遇上一个问题,希望几路高手支招
- C#问题 设计一个表决器 求助!!!
- 35. 百度研发笔试题:设计一个系统处理词语搭配问题
- 最近面试中遇到的海量数据库设计问题
- 架构设计:进程还是线程?是一个问题!
- 架构设计:进程还是线程?是一个问题!(转载)
- 一个分布式应用的常见的设计问题
- 架构设计:进程还是线程?是一个问题!(转载)
- memset函数以及一个界面设计问题
- 如何设计数据仓库?粒度问题是一个最重要方面!
- 一个一对多问题的设计模型
- B2C外贸网站产品设计和功能需求,一个产品设置了在多个类别里面都可以看到,以及Email模板问题
- 一个设计上的问题,高手帮解决下
- 每天一个设计模式之Decorator模式解决类间组合爆炸问题
- 使用MVC框架中要注意的问题(二):将Model和Controller单独用一个项目设计
- 关于HBase MVCC的设计原理以及MVCC所引起的一个scan问题
- winform设计一个登录界面和修改密码的界面-自动切换窗体(问题[已解] 望一起讨论)(技术改变世界-cnblog)