Seharusnya tidak ada perbedaan kinerja yang signifikan antara beberapa tabel dalam database tunggal versus beberapa tabel dalam database terpisah.
Di MySQL, database (SQL standar menggunakan istilah "skema" untuk ini) berfungsi terutama sebagai namespace untuk tabel. Database hanya memiliki beberapa atribut, mis. set karakter dan susunan karakter default. Dan penggunaan GRANT
memudahkan untuk mengontrol hak akses per database, tetapi itu tidak ada hubungannya dengan kinerja.
Anda dapat mengakses tabel di database apa pun dari satu koneksi (asalkan dikelola oleh instance MySQL Server yang sama). Anda hanya perlu memenuhi syarat nama tabel:
SELECT * FROM database17.accounts_table;
Ini murni perbedaan sintaksis. Seharusnya tidak berpengaruh pada kinerja.
Mengenai penyimpanan, Anda tidak dapat mengatur tabel ke dalam file-per-database sebagai @Chris berspekulasi. Dengan mesin penyimpanan MyISAM, Anda selalu memiliki file per tabel. Dengan mesin penyimpanan InnoDB, Anda memiliki satu set file penyimpanan yang menggabungkan semua tabel, atau Anda memiliki file per tabel (ini dikonfigurasi untuk seluruh server MySQL, bukan per database). Dalam kedua kasus tersebut, tidak ada keuntungan atau kerugian kinerja untuk membuat tabel dalam satu database versus banyak database.
Tidak banyak parameter konfigurasi MySQL yang berfungsi per database. Sebagian besar parameter yang memengaruhi kinerja server mencakup seluruh server.
Mengenai pencadangan, Anda dapat menentukan subset tabel sebagai argumen ke mysqldump
memerintah. Mungkin akan lebih mudah untuk mencadangkan kumpulan tabel logis per database, tanpa harus memberi nama semua tabel pada baris perintah. Tapi seharusnya tidak ada bedanya dengan kinerja, hanya kenyamanan bagi Anda saat Anda memasukkan perintah pencadangan.