数据库设计 – 如何在磁盘或数据库上存储稀疏可查询矩阵?

我需要在磁盘上存储稀疏矩阵.它就像一个包含数百万行和数千列的数据库表,其中许多或大多数列为空.它需要是可查询的,就像某些列上带有WHERE的sql SELECT一样.

我的具体要求是Java.我首先想到使用Berkeley DB for Java来模拟表,但是它不支持基于值的查询.

然后,我考虑使用常规sql数据库.例如,创建仅包含行ID,列ID和值的模式.虚拟行将是具有相同ID的所有实际行.但是,这看起来像数据库滥用.

有任何想法吗?

解决方法

在阅读问题标题时,我首先想到的是每个(x,y)的数据库行,正如您在最后一段中所建议的那样.

另一件需要注意的事情是数据库经常压缩行,特别是对于NULL,因此简单的表示可能不会浪费你想象的那么多空间.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...