We have a single huge table around 10 TBs in which each row is approximately 10 KB.
The primary key's type is BIGINT and it is uniformly distributed.
The server has 40 GBs of RAM, two 4-core Xeon CPUs, and five 2 TB disks. The work load is merely single inserts/updates or selects by primary key. No transactions or joins are needed.
Considering the table and the available RAM, it seems that caching will not be very effective since the queries are mostly random. Now the question is which config is better for more query per second (especially selects):
- Using RAID-0 or LVM with striping to increase read/write performance.
- Use table partitioning (using primary key) and store each table in a different hard disk.
We want to use MySQL but and other open source DBMS like PostgreSQL is also acceptable. Logically, for our setting partitioning must work better because the seeks are distributed between different disks. However, the most-used pattern is using RAID-0.
Does anyone has any idea or experience related to this problem.