Which hardware you suggest?
If you are honestly expecting to have the numbers you say for an all-InnoDB database, you are going to be needing a lot more memory. Here is why:

InnoDB caches data and index pages in the InnoDB Buffer Pool. If you will be doing heavy reads, a large buffer pool is your best friend. Since most people recommend 75-80% of RAM for a dedicated MySQL DB Server, that would about about 3200M (3.2G).

I would go the following (32GB or RAM)


innodb_buffer_pool_size = 24G
innodb_buffer_pool_instances = 4
innodb_read_io_threads = 16
innodb_write_io_threads = 16
innodb_file_per_table = 1


There are too many other aspects for me to just put in the answer. Here are some of my InnoDB posts:


Possible to make MySQL use more than one core?
How large should be mysql innodb_buffer_pool_size?
How do you tune MySQL for a heavy InnoDB workload?
Clarification on MySQL innodb_flush_method variable
Is it safe to use innodb_flush_log_at_trx_commit = 2
My Other InnoDB Posts


Don't forget to tune the per-connection settings and multiply the sum of them by max_connections : See my post Understanding mysqltuner Recomendations w/ Unused Catalogs