如何处理拥有非常大数据的表?
问题描述:
我必须创建一个包含30列和数千行的表。我如何管理这个?如何处理拥有非常大数据的表?
对于在磁盘中存储非必需数据的表,是否有像B +树这样的数据结构?
我必须使用Java/JDBC来实现它。
有什么想法?
答
我基础上的结构在内存中的溶液状
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
你是说你要从头开始写一个DBMS?或者只是通过JDBC使用现有的(如Oracle或MySQL)? – Thilo 2010-12-22 06:34:39