300 columns and 3 million rows is not that huge as it sounds. Any standard RDBMS application would do that. To decide the database a lot would depend on how much you can spend on the DB and server(hardware).
debasisdas
Posting Genius
6,872 posts since Feb 2007
Reputation Points: 666
Solved Threads: 434
debasisdas is correct as usual, but may I ask what data types are the 300 columns?
If 200 columns are text fields (or any other large data type) and you want them to be searched for some text this might be a challenge for the "hundreds of millions" records.
This decision must also take into account number of concurent users and hits per minute, time allowed for processing and hardware.
adam_k
Practically a Posting Shark
804 posts since Jun 2011
Reputation Points: 256
Solved Threads: 149
would it be better to spread my data across multiple tables or just one?
Bearing in mind what debasidas and adam_K have said, For such large volume of data, keeping all in one table may cause difficulty when you want to make some update on the database structure and may also affect the rate at which data is retrieved.
Netcode
Veteran Poster
1,021 posts since Jun 2009
Reputation Points: 43
Solved Threads: 67