问题描述
- 海量数据存储,查询是如何实现的
-
数据库 就用 Oracle 吧11亿条数据在数据中是如何存储的?分物理存储,和逻辑存储两方面阐述
这11亿条数据在数据库是如何实现查询的?分物理查询,和逻辑查询两方面阐述
还是这11亿条数据在计算机是如何存储的?分物理存储,和逻辑存储两方面阐述
这11亿条数据在计算机中是如何查询的?分物理查询,和逻辑查询两方面阐述
项目例会的时候,开发经理提出来的。大家各抒己见!
解决方案
11亿在今时今日已经不能称海量了,一般都要过10t~100T的大小。如果磁盘IO高、内存也不错,单文件直接存也未尝不可。如果担心的话可以把数据库分多文件分布在不同的物理磁盘上。索引和数据分开物理文件。
11亿数据要看你怎么查,每次都查11亿,没什么优化可言,如果是少量查询,可以考虑在合适的地方建索引,并且严格按照SARG写法。
其他问题。。。问得太虚,真要说的话没有几千字说不完
解决方案二:
通用数据库存储数据的方式大同小异,换言之,你定义了字段、索引、数据类型、表结构等元数据,就确定了数据存储的方式,不会因为数据是1条或者11亿条而有任何差别。通用数据库的实现在任何一本大学教材上都有介绍,这个不是几句话可以说清楚的。比如说,使用链表+块的形式存储数据,以散列表的形式存储索引,等等。
解决方案三:
在建立表的时候,建立分区表,如果有可以的话分区尽可能不建立在同一个磁盘上; 可以根据业务和数据的规律建立组合分区,至于如何建立分区,可以找相关的资料。
可以根据业务的需求建立固化视图,建立好表的索引(建立索引的建议可以找相关的资料),
查询时尽可能指定分区表进行查询
(当跨分区的时候。并且查询常用的时候,可以考虑使用建立固化视图)
时间: 2024-07-29 13:46:50