Forum Moderators: open
It has 9 tables, and could have as many as 25,000 rows.
Primary table would have about 40 columns. Each row would be approximately 10 k (mostly in text description).
Most transaction write new data into certain tables.
I have recently read about some potential problems / housekeeping requirements when lots of writing is one to mySQL tables.
We may not be able to aford the license fee for commercial databases .. not sure how much a single license is ..
mySQL, postgres, or?
hosting - yes, our hosting is on our own VPS and does have mySQL available, and we could always install postgres, I assume
writing to tables - we won't be changing the table width (columns) on rewrite. Rewriting will be changes in cms, billing, notification, activation, deactivation, changing admin data, registration of users, registration of partners, changing of data for each
tables - we already have 9 tables in the design. Some are linked .. 2 sets of ID numbers, (one for B2B, one for C2B)
most queries will be searches from the "main table" which has data inserted from our own version of a simple cms plus other administrative data
second busiest table (we hope) will be the billing increment (very small amounts) .. deducting from a prepaid amount
The database is a little complicated (by our standards) because is is B2B plus C2B plus CMS plus Automated Billing
If you're storing criticial data (billing etc) in it, you might need to be extra vigilant with your design / coding if you're using MySQL, as it has a nasty habit of not-quite-doing-what-you-expect, e.g. you enter data which is longer than the field, and the data is silently truncated; or you create a foreign key, but the server doesn't have InnoDB activated, but still says it created the key.
There's a "MySQL gotchas" page out there which list this stuff.
25,000 rows is fine if you've got a handful of rows, a hundred bytes per row say.
But 10K per row? 25,000 rows equals 250MB, and that's not a trivial size - trying to run that on a shared server may well get you booted for excessive use of resources if you expect a lot of database activity.
If your database usage is light, MySQL will be fine, but keep an eye on its size and do some research in tweaking it, which you'll need to do as it grows. Also consider using InnoDB engine - it has more overhead but supports foreign key referential integrity.