I'm developing a web app with only a couple people with small amounts of spare time and it would be great to "outsource" DB management to SimpleDB. I have heard SimpleDB can be slower than MySQL but it seems pretty fast so far w/o a large table. Does anyone have experience with it?
Short Answer: No.<p>Long Answer:<p>SimpleDB is based off what every application developer wants to hear. Put your data here and it will just be available. No worries, no cares. For (relatively) small amounts of data, SimpleDB will definitely cut it. However, SimpleDB also limits your usage of that data. No nice normalized schema and joins for you. That makes development time much longer.<p>Of course, if you only have a small amount of data, it's pretty easy to manage MySQL or PostgreSQL. Database administration becomes hard when you have lots of data. But this is where SimpleDB just falls flat. In a single domain (roughly equivalent to a database), you can only have 250,000,000 attributes (cells). That sounds like a huge number at first, but if you have a table with 10 columns, you're down to 25M rows. Still, a lot, but not exactly no-worries. Considering that you'll probably want multiple tables with maybe 100 or more columns, you can see that it just doesn't support large web applications.<p>Amazon has set up an "infinitely scalable" database that has hard limits that aren't particularly high. Open source relational databases are easy and reliable when you aren't dealing with the scale of a Digg or Flickr. The only reason to go with something less useful (no joins, limited querying) would be to scale better. Amazon's hard limits on SimpleDB mean that it just doesn't scale. So, why use something less easy when the benefit isn't there?
There are fundamental differences that are more significant than speed or administration.<p>SimpleDB is "eventually consistent" - that is, when you write, a subsequent read might not immediately reflect the change. There's also no such thing as a join, although you can approximate it.<p>I think of SimpleDB as searchable metadata storage. It's useful, but not a drop-in replacement for a traditional database.
I have heard of inconsistencies with slow-down, but also quite a few successes.
I hear Amazon is improving it consistently though.<p>I would look at it this way: If you do not have time to manage it, then either the DB or other aspects will suffer - It is likely that SimpleDB will better this.
I have a hunch that you may be worried about scaling problems since you are looking at SimpleDB instead of MySQL. For an app in its infancy you shouldn't be too worried about scaling problems. Just use a MySQL database for now. Thousands of webapps can't be wrong!