On 11/19/07, Mohammad wrk <[EMAIL PROTECTED]> wrote:
>
> Hi,
>
> I'm working on a web 2.0 project that targeting small to medium size
> companies for providing business services. Companies simply register to the
> site and then start their business by loading their data, sharing and
> discussing them with others.
>
> The design/architectural decision now we are facing from database
> perspective is how we should store companies' specific data? One way is to
> put all of them in a single database and partition them by company-id and
> the other one is to create, on the fly,  a new database per company . The
> justification for the latter is that MySQL is not powerful enough (compare
> to Oracle or DB2) to handle large amount of data and concurrent users.
>
> I'm new to MySQL and don't know that much about it and this is why I'd
> like to discuss this concern here.


I think the statement that MySQL is not as "powerful" as the other products
probably is unfounded in the sense that you mean it.

On a given platform, searches are typically going to be O(N) or O(log N)
depending on how you arrange the indexes and queries.

http://en.wikipedia.org/wiki/Big_O_notation

What you are trying to do is design your database so that all the queries
are O(log N) rather than O(N).

It is possible that Oracle can perform more adeptly than MySQL at certain
operations (I don't know this, and the stats could easily go the other
way).  But the difference probably wouldn't exceed 2:1 in favor of either
product, and you'll still be left with the O(N) vs. O(log N) design issue.

I'd go with the design that does not create new tables.

Dave.

Reply via email to