Jeremy Cole has some very good final words on MySQL and RAID, and he also points to all the articles that were written about the subject.
One paragraph in particular caught my eye:
Use data partitioning (sharding). I haven’t talked much about this in my previous posts, because it’s sort of a given. My participation in the HiveDB project and my recent talks on “Scaling and High Availability Architectures” at the MySQL Conference and Expo should say enough about my feelings on this subject. Nonetheless I’ll repeat a few points from my talk: data partitioning is the only game in town, cache everything, and use MySQL replication for high availability and redundancy.
Data partitioning is the key to scaling, there is indeed no other way to do this, whether you partition horizontally or vertically, caching really helps if done right, and use MySQL replication for high availability and redundancy, not as a means to spread the read load (I learned that the hard way.)
Update (June 12th, 2007), Peter Zaitsev has some more words on the subject.