views:

13

answers:

1

Hi everyone,

We are working on a tool that will let developers create widgets and distribute to some publishers in our network. Publishers will be inserting these widgets to their websites. We want developers and publishers to see how many times (from which areas and some other statistical data) these widgets are displayed or interacted.

Currently we have Developer, Widget, Publisher tables but since we are expecting a 1M+ widget display per day, we cannot put whole interactions on one table. Do you have any suggestion for designing such database?

Thanks in advance.

A: 

A hit rate of 1M per day is acceptable for MySQL, for example. If you do the math this means around 12 queries per second, which is by far enough even on modest hardware.

However, if you are designing with scalability in mind you should take a look at Cassandra, MongoDB, etc.

You can google for use-cases for both.

the_void
`1M` widget display makes `1M SQL INSERT` per day, the application itself also makes some other queries. I think, though `MySQL` can handle `1M` query per day, within 3 months, table size will be `100M` rows, which is not that easy to handle, or is it?
kubilayeksioglu
You can get away with hundreds of inserts *per second* even on modest hardware. I don't think you need to concentrate on the storage requirements (remember that hdd space is cheap) but on how large the active data set will be. You can always do some simple benchmarks to see the actual performance.
the_void