Mezi více tabulkami v jedné databázi by neměl být žádný významný rozdíl ve výkonu ve srovnání s více tabulkami v samostatných databázích.
V MySQL slouží databáze (standardní SQL pro to používá termín „schéma“) především jako jmenný prostor pro tabulky. Databáze má pouze několik atributů, např. výchozí znakovou sadu a řazení. A to použití GRANT
usnadňuje ovládání přístupových práv na databázi, ale to nemá nic společného s výkonem.
K tabulkám v jakékoli databázi můžete přistupovat z jediného připojení (za předpokladu, že jsou spravovány stejnou instancí serveru MySQL). Musíte pouze kvalifikovat název tabulky:
SELECT * FROM database17.accounts_table;
To je čistě syntaktický rozdíl. Nemělo by to mít žádný vliv na výkon.
Pokud jde o úložiště, nemůžete organizovat tabulky do databáze podle souboru, jak předpokládá @Chris. S úložištěm MyISAM máte vždy soubor na tabulku. S modulem úložiště InnoDB máte buď jednu sadu souborů úložiště, které slučují všechny tabulky, nebo máte soubor pro každou tabulku (toto je nakonfigurováno pro celý server MySQL, nikoli pro databázi). V obou případech neexistuje žádná výkonnostní výhoda ani nevýhoda vytváření tabulek v jedné databázi oproti mnoha databázím.
Není mnoho konfiguračních parametrů MySQL, které fungují na databázi. Většina parametrů, které ovlivňují výkon serveru, se vztahuje na celý server.
Pokud jde o zálohy, můžete zadat podmnožinu tabulek jako argumenty pro mysqldump
příkaz. Může být pohodlnější zálohovat logické sady tabulek na databázi, aniž byste museli pojmenovávat všechny tabulky na příkazovém řádku. Nemělo by to však mít žádný vliv na výkon, pouze na pohodlí při zadávání příkazu zálohování.