Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Không gian bị chiếm bởi các hàng đã xóa có được sử dụng lại không?

Thật là hoang tưởng :)

DB không tăng kích thước một cách không cần thiết, nhưng đối với các vấn đề về hiệu suất, không gian cũng không được giải phóng.

Điều bạn đã nghe nhiều nhất có lẽ là nếu bạn xóa các bản ghi thì không gian đó sẽ không được trả lại cho Hệ điều hành . Thay vào đó, nó được giữ như một không gian trống để DB sử dụng lại sau đó.

Điều này là do:

  • DB cần có một số không gian HD để lưu dữ liệu của nó; nếu nó không có bất kỳ khoảng trống nào, thì lúc đầu, nó sẽ dành một số không gian trống.
  • Khi bạn chèn một hàng mới, một phần không gian đó sẽ được sử dụng.
  • Khi bạn sử dụng hết dung lượng trống, một khối mới sẽ được đặt trước, v.v.
  • Bây giờ, khi bạn xóa một số hàng , để ngăn việc lưu trữ ngày càng nhiều khối, dung lượng của nó được giữ nguyên nhưng không bao giờ được cấp lại cho Hệ điều hành, vì vậy bạn có thể sử dụng lại sau này mà không cần đặt trước khối mới.

Như bạn có thể thấy, không gian tái sử dụng, nhưng không bao giờ được trả lại. Đó là điểm mấu chốt cho câu hỏi của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách truy cập cơ sở dữ liệu MySql từ xa từ Ứng dụng iPhone

  2. Cài đặt MySQLdb trên Mac OS X

  3. Lỗi phân tích cú pháp dữ liệu org.json.JSONException:Kết thúc đầu vào ở ký tự 0 của - Android

  4. Làm cách nào để tối ưu hóa truy vấn EAV MYSQL phức tạp này?

  5. Bảng ALTER TABLE AUTO_INCREMENT =$ x