sql >> Database teknologi >  >> RDS >> Mysql

MySQL:Mange tabeller eller mange databaser?

Der bør ikke være nogen signifikant ydelsesforskel mellem flere tabeller i en enkelt database versus flere tabeller i separate databaser.

I MySQL tjener databaser (standard SQL bruger udtrykket "skema" til dette) primært som et navneområde for tabeller. En database har kun få attributter, f.eks. standardtegnsættet og sorteringen. Og den brug af GRANT gør det praktisk at kontrollere adgangsrettigheder pr. database, men det har intet med ydeevne at gøre.

Du kan få adgang til tabeller i enhver database fra en enkelt forbindelse (forudsat at de administreres af den samme forekomst af MySQL Server). Du skal blot kvalificere tabelnavnet:

SELECT * FROM database17.accounts_table;

Dette er udelukkende en syntaktisk forskel. Det burde ikke have nogen indflydelse på ydeevnen.

Med hensyn til lagring kan du ikke organisere tabeller i en fil-per-database, som @Chris spekulerer. Med MyISAM-lagringsmotoren har du altid en fil pr. tabel. Med InnoDB-lagringsmotoren har du enten et enkelt sæt lagerfiler, der samler alle tabeller, eller også har du en fil pr. tabel (dette er konfigureret til hele MySQL-serveren, ikke pr. database). I begge tilfælde er der ingen fordele eller ulemper ved at oprette tabellerne i en enkelt database i forhold til mange databaser.

Der er ikke mange MySQL-konfigurationsparametre, der virker pr. database. De fleste parametre, der påvirker serverens ydeevne, er serverdækkende.

Med hensyn til sikkerhedskopier kan du angive et undersæt af tabeller som argumenter til mysqldump kommando. Det kan være mere praktisk at sikkerhedskopiere logiske sæt af tabeller pr. database uden at skulle navngive alle tabellerne på kommandolinjen. Men det burde ikke gøre nogen forskel for ydeevnen, kun bekvemmelighed for dig, når du indtaster backup-kommandoen.



  1. SQL Server Express Backup Database | Sådan planlægger du automatisering og fjernelse af SQL Express-sikkerhedskopi

  2. Hvordan kan jeg finde en kolonne overalt i SQL Server?

  3. Sådan fungerer TO_BASE64()-funktionen i MySQL

  4. MySQL:Tæl de forskellige rækker pr. dag