sql >> Databasteknik >  >> RDS >> Mysql

Återanvänds utrymmet som tas upp av raderade rader?

Det är paranoia :)

DB:er växer inte i storlek i onödan, men för prestandaproblem frigörs inte utrymme heller.

Vad du förmodligen har hört är att om du raderar poster så ges inte utrymmet tillbaka till operativsystemet . Istället hålls det som ett tomt utrymme för DB att återanvända efteråt.

Detta beror på att:

  • DB behöver ha lite HD-utrymme för att spara sina data; om det inte har något utrymme, reserverar det lite tomt utrymme först.
  • När du infogar en ny rad används en del av det utrymmet.
  • När du får slut på ledigt utrymme reserveras ett nytt block, och så vidare.
  • Nu, när du tar bort några rader , för att förhindra att fler och fler block reserveras, hålls dess utrymme ledigt men ges aldrig tillbaka till operativsystemet, så du kan använda det igen senare utan att behöva reservera nya block.

Som du kan se, är utrymme återanvänd men aldrig återlämnad. Det är nyckeln till din fråga.



  1. PostgreSQL Meltdown Benchmarks

  2. lista Postgres ENUM-typ

  3. Gruppkonkat resultat avskurna

  4. com.mysql.jdbc.exceptions.MySQLSyntaxErrorException vid användning av PreparedStatement