Within a single instance of MySQL, there are few, if any, advantages in splitting your data into multiple databases and/or tables.
With PARTITIONing and InnoDB, you get separate "tablespaces", but there are very few applications that get any performance gain with such. They are listed here: http://mysql.rjweb.org/doc.php/partitionmaint#use_cases_for_partitioning
A "database" is implemented as an OS directory. A table is implemented as one to three files in that database/directory. If you have more than, say, 10K items in a directory (that is, more than 10K databases or 10K tables in a database), the OS will be sluggish. Plus you will push the limits of several caches.
Someday, WordPress will understand this, and change their 1-db per user approach.
Multi-tennancy -- Sure. I like the CGroups approach to better control resources given to each MySQL instance.
Manually putting different things on different disks. No. You are better off (usually) by using RAID striping, especially RAID-5 or RAID-10. Be sure to have a hardware RAID controller with battery-backed-write-controller; that way, writes are instantaneous, and you are still protected from power failures.
Sharding -- Yes; if it is applicable. But you have to do a lot of work yourself, or get Spider or Clustrix.
Also consider Galera / PXC / MariaDB -- they give you multi-master automagically, plus HA.