I just learned there are "graph databases" out there, which are more suited for two applications "search engine" and especially "gis".
To avoid discussions weather a relational DB is better suited and to make clear what kind of Database is needed, here some more details what I want to use it for:
- Application (Search Engine): Handling search engine data in a relational DB is slow because you'll have big tables with enormous indeces. Imagine just a table like 'links' which is just
from_pageid INT, to_pageid INTwith PRIMARY KEY(from_pageid, to_pageid), INDEX (from_pageid) and INDEX (to_pageid); which would have some 1'000'000 Entries. When using a graph database there are just all "from" and all "to" links for each nodes, with or without index, which are right there without looking up a huge index. - Application (GIS): If you have a map, which consists of nodes (with geographical positions) and links between them (=ways, roads, autoroutes...) you'll have a big "links" table to ask for which links (road, ways,...) can be used at node x. Same problem as for the search engine application.
Ok, now some more specialties:
- It should be a free software (at no cost). Reason: I want to use it for research/educational purposes (and I currently have to finance this my own). AND: I possibly want to let it become a commercial product. Therefore a "free for non-commercial use"-solution should be at least effordable, if switching to commercial application...
- I would like to use PHP, C/C++ for accessing the DB (preferably both should be possible). If also Java/Android is supported, it would even better.
- Operating System: Linux!; I would like a Java based product, as the javaVMs tends to eat up all RAM (only have very limited server resources) and don't free any - even if they could.
What DBs would you suggest to me?