I working on SPARQL query performance on Jena SDB. For persistence, Jena SDB stores triples in a relational database (e.g., MySQL). How Jena SDB handle a SPARQL query? Does it:
我在Jena SDB上处理SPARQL查询性能。对于持久性,Jena SDB在关系数据库(例如,MySQL)中存储三元组。Jena SDB如何处理SPARQL查询?它是:
- load all the data from MySQL into its memory format, and then run the sparql query in memory; or
- 将MySQL中的所有数据加载到其内存格式中,然后在内存中运行sparql查询;或
- translate the SPARQL query in SQL and send it to MySQL?
- 将SPARQL查询转换为SQL并发送到MySQL?
The second hypothesis seems most likely to me, since this will take advantage of the indices provided by the relational database. Does someone have a clue about this, or any reference about Jena internal data format to handle SPARQL query?
第二个假设对我来说最有可能,因为这将利用关系数据库提供的索引。有人对此有所了解吗?或者有关于Jena内部数据格式的引用来处理SPARQL查询吗?
1 个解决方案
#1
3
- No (it does not read everything into memory)
- 不(它不会把所有东西都读到内存中)
- Yes (it generates SQL)
- 是的(它生成SQL)
See the output of sdbprint
which shows the SQL generated. It is not one SQL query for one SPARQL query in all cases.
请参见sdbprint的输出,其中显示了生成的SQL。在所有情况下,它不是一个SPARQL查询的SQL查询。
Jena TDB is faster and scales better than Jena SDB. SDB should only be used where layering on an existing SQL deployment is necessary.
Jena TDB比Jena SDB的速度和伸缩性都好。只有在需要对现有SQL部署进行分层时才应该使用SDB。
#1
3
- No (it does not read everything into memory)
- 不(它不会把所有东西都读到内存中)
- Yes (it generates SQL)
- 是的(它生成SQL)
See the output of sdbprint
which shows the SQL generated. It is not one SQL query for one SPARQL query in all cases.
请参见sdbprint的输出,其中显示了生成的SQL。在所有情况下,它不是一个SPARQL查询的SQL查询。
Jena TDB is faster and scales better than Jena SDB. SDB should only be used where layering on an existing SQL deployment is necessary.
Jena TDB比Jena SDB的速度和伸缩性都好。只有在需要对现有SQL部署进行分层时才应该使用SDB。