Oh, well, the 300,000 are the base items. Atop that are 700,000 orders, 300,000 customer records, 800,000 current sales records, and 4 million archived sales records. Call it 6 million for simplicity.
Those definitely are numbers where you need to start paying attention to MySQL.. Still, that shouldn’t be too bad as long as the hardware is ok. Unless you are table scanning the 4 million archived records..
Okay, whip it out...
I had one with 20 million+ main records, but all text so it was only a few hundred gigabytes. Tweaking the indexes (regular and full-text) for fast searching was the key there. Had another that used lots of BLOBs, ran to terabytes in over a million records. That just sucked. I left before SQL Server 2008 came available with its ability to hold BLOBs outside the database files.
But then I have friends who have dealt with a lot more than that. One ran a mainframe with two of those robotic tape silos. He’s probably juggling petabytes by now. There’s always a bigger fish.