kun*_*nal 2 database postgresql optimization
我想创建一个百万双列表..好吧我试图创建使用java,花了大约100 mbs的数据转换为7Gbs并花了20小时来完成它...我使用postgre sql之前我尝试过mysql,mysql甚至更糟糕..有没有办法用更少的空间和时间创建这么多的表?水平分区会很好吗?
我试图索引RDF数据以便快速执行,Idea是使用rdbms索引rdf数据并将sparql查询转换为sql查询,以及RDF是三元组主题,谓词,对象,现有方法使用谓词表方式的资源集合,对于每个谓词,主题和对象都存储,谓词的数量与其他谓词相比要少得多.因此,查询需要连接这些谓词表,以便在平面文件中获得大约100mbs的结果.我试图创建主题表4快速执行
如果您的数据库中需要一百万个表,那么您做错了.
表旨在表示结构上和概念上不同的数据.而且我拒绝相信您在应用程序中使用了一百万种不同的概念.
有时,初学者认为他们应该为每个用户创建一个表格.但"用户"是一个概念,并且您为每个用户存储相同的信息(例如,名称,电子邮件,用户名,密码),因此它应该是一个表,其中每个用户只是一个单独的行.
这听起来像是你犯了一个类似的错误,也许不是与用户有关,而是与你有很多实例的其他一些抽象.每个实例应该是一个表中的一行.
如果你向我们描述你想要存储在数据库中的是什么,我们几乎可以肯定地帮助你弄清楚应该如何映射到表.
阅读你的评论后编辑(这应该真正编辑成问题本身),这是我的想法:
如果所有数据的结构方式相同(如三元组),则只需将所有数据存储在一个包含三列的表中,然后添加必要的索引以进行有效的查找.
如果事先知道所有谓词,你可以为每个谓词创建一个表,但我不确定它会产生多大的意义,甚至.
最干净的选择很可能是有4个表:
(id, subject),(id, predicate),(id, object),(subjectid, predicateid, objectid).