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

Hvordan beregner man diskpladsen brugt af MySQL-tabellen ud fra kolonnedatatyper og antal rækker?

  • Der er mere overhead, end du nævnte. 20 bytes/række måske være tæt .
  • Stol ikke på VIS TABELSTATUS for at give "Rækker", brug SELECT COUNT(*) ... Læg mærke til, hvordan det var næsten en faktor 2.
  • Beregn den anden vej:135245332480 / 3017513240 =45 bytes.
  • Fra 45 bytes udleder jeg, at mange af cellerne er NULL?
  • Hver kolonne i hver række har 1- eller 2-byte overhead.
  • ROW_FORMAT betyder noget.
  • TEKST og BLOB (osv) har radikalt andre regler end simple datatyper.
  • Indekserne tager meget mere end de 6 bytes, du nævnte (se dit andre indlæg ).
  • BTræstrukturen har nogle overhead. Når den er indlæst i rækkefølge, er 15/16 af hver blok udfyldt (det er nævnt et sted i dokumenterne). Efter churn kan området nemt være 50-100% er fyldt; et BTree graviterer til 69 % fuldt (deraf 1,45 i det andet opslag).

Reserverer lige meget plads til backup...

  • Jeg ved ikke, om det er det, de gør.
  • Hvis de bruger mysqldump (eller lignende), er det ikke en sikker formel -- teksten dump af databasen kan være væsentligt større eller mindre.
  • Hvis de bruger LVM, så har de plads til en fuld binær dump. Men det giver ikke mening på grund af COW.
  • (Så jeg giver op med Q3.)

Kan Cloud-tjenesten lave en form for komprimering?




  1. PHP - MySQL forberedt erklæring for at INDSÆTTE et array

  2. Vælg data fra DB baseret på brugerinput

  3. Sender Firesbase-meddelelse til flere brugere

  4. 3 måder at returnere en liste over SQL Server Agent-job (T-SQL)