I think some of the advice here is good for high traffic sites but my company only sees about 1400 people a day use our data although we do processing of information for each client in millions of jobs a day. In our sceneraio we have one MySQL instance on aws aurora, about 50 tables and 3 terabytes of info total. Most of the size comes from about 10 tables and are mostly used for joins after data is quickly searched on elastic search. I will put down the myisam search we use to use before elasticsearch which was drowning as we reached 100M to 200M rows when things weren't pushed over to their own machine and could hog up ram. When fulltext is planned from the start along with backups and other things it can save a ton of headaches.