如何处理拥有非常大数据的表?

问题描述:

我必须创建一个包含30列和数千行的表。我如何管理这个?如何处理拥有非常大数据的表?

对于在磁盘中存储非必需数据的表,是否有像B +树这样的数据结构?

我必须使用Java/JDBC来实现它。

有什么想法?

+1

你是说你要从头开始写一个DBMS?或者只是通过JDBC使用现有的(如Oracle或MySQL)? – Thilo 2010-12-22 06:34:39

我基础上的结构在内存中的溶液状

Map<Object, DataType> table 

并且或者选择一个HashMap如果我想快速读取和单个行的插入件或TreeMap如果基于关键字排序输出是一个典型的场景。

Big是 - 一如既往 - 相对相对。您可以将额外的堆空间分配给虚拟机,以便该表的内存消耗为“花生”。顺便提一句,是一些保存表条目所有值的java类。

如果需要持久性,请在现有数据库引擎上定义该表,并开发一些SQL查询语句以仅读取所需的数据。

NTFS,ReiserFS,NSS,XFS和JFS文件系统都使用这种类型的树进行元数据索引。关系数据库管理系统(如IBM DB2,Informix,Microsoft SQL Server,Oracle 8,Sybase ASE,PostgreSQL,Firebird,MySQL和SQLite)支持这种类型的表索引树。

成千上万的记录在企业应用程序中是正常的。

在频繁检索的字段上应用索引时,会使搜索更好,但会影响插入。

如果可能,请尝试进一步标准化数据库。

在应用层,你可以使用缓存API的喜欢OSCache的,的EHCache,等的JCache