I am in the process of building an mobile application (iPhone/Android) and want to store the application data onto Amazon\'s SimpleDB, because we do not want to host our own ser
SimpleDb is, well, simple. Everything in it is a string. The documentation is very straight-forward. And there are lots of usage restricts. Such as:
SELECT * FROM ___ WHERE ItemName() IN (...)
with 20 ItemName
s in the IN
.PUT
(update) to 25 records at a time.SELECT
with a LIMIT
of 1000
it may return something like 800
(or even nothing) along with a nextToken
in which you need to make an additional request (with the nextToken
). This means that the next SELECT
may actually return the limit count, so the sum of returned rows from the two SELECT
s may be greater than your original limit. This is a concern if you are selecting a lot. Also, if you do a SELECT COUNT(*)
you will hit a similar problem. It will return you a count, along with a nextToken
. And you need to keep iterating over those nextToken
s and sum the returning counts to get the true (total) count.So, if you plan to use large amounts of string-data, or have a lot of records, then you may want to look elsewhere. SimpleDb is very very reliable, and works as documented, but it can cause lots of headaches.
In your case I'd recommend something like MongoDb. It has its own share of problems as well, but may be better for this case. Though, if you have lots of records (millions and upward) and then try to add indexes to too many records you may break it if it's on spindels and not SSDs.