Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy miejsce zajmowane przez usunięte wiersze jest ponownie wykorzystywane?

To paranoja :)

DB nie powiększają się niepotrzebnie, ale w przypadku problemów z wydajnością również miejsce nie jest zwalniane.

Prawdopodobnie słyszałeś, że jeśli usuniesz rekordy, to miejsce nie zostanie zwrócone systemowi operacyjnemu . Zamiast tego jest on przechowywany jako pusta przestrzeń dla bazy danych do ponownego użycia.

Dzieje się tak, ponieważ:

  • DB potrzebuje trochę miejsca na dysku HD, aby zapisać swoje dane; jeśli nie ma miejsca, na początku rezerwuje trochę pustego miejsca.
  • Kiedy wstawiasz nowy wiersz, część tego miejsca jest używana.
  • Gdy zabraknie wolnego miejsca, rezerwowany jest nowy blok itd.
  • Teraz kiedy usuniesz niektóre wiersze , aby zapobiec rezerwowaniu coraz większej liczby bloków, jego miejsce jest wolne, ale nigdy nie jest zwracane systemowi operacyjnemu, dzięki czemu można go później użyć ponownie bez konieczności rezerwowania nowych bloków.

Jak widać, spacja to ponownie wykorzystany, ale nigdy nie oddany. To jest kluczowy punkt twojego pytania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL otrzymuje brakujące identyfikatory z tabeli

  2. Jak przechowywać adresy URL w MySQL

  3. Kolumna aktualizacji MySQL tylko wtedy, gdy wartość nie jest pusta, gdzie

  4. Tabela przestawna MySQL z dynamicznymi nagłówkami na podstawie danych w jednej kolumnie

  5. Czy naprawdę potrzebne są cudzysłowy wokół tabel i kolumn w zapytaniu MySQL?