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

Làm thế nào để tính toán không gian đĩa được sử dụng bởi bảng MySQL từ các kiểu dữ liệu cột và số hàng?

  • Có nhiều chi phí hơn bạn đã đề cập. 20 byte / hàng might được gần gũi .
  • Không tin tưởng SHOW TABLE STATUS để cung cấp "Hàng", hãy sử dụng SELECT COUNT(*) ... Hãy để ý xem nó đã giảm gần như hệ số 2 như thế nào.
  • Tính theo cách khác:135245332480/3017513240 =45 byte.
  • Từ 45 byte, tôi suy ra rằng rất nhiều ô là NULL?
  • Mỗi cột trong mỗi hàng có tổng chi phí 1 hoặc 2 byte.
  • ROW_FORMAT vấn đề.
  • TEXTBLOB (v.v.) có các quy tắc hoàn toàn khác với các kiểu dữ liệu đơn giản.
  • Các chỉ mục chiếm nhiều hơn 6 byte mà bạn đã đề cập (xem bài đăng khác của bạn ).
  • Cấu trúc BTree có một số chi phí. Khi được tải theo thứ tự, 15/16 của mỗi khối được lấp đầy (điều đó được đề cập ở đâu đó trong tài liệu). Sau khi khuấy, phạm vi có thể dễ dàng được lấp đầy 50-100%; một BTree hấp dẫn đến 69% đầy (do đó là 1,45 trong bài đăng khác).

Dành một lượng không gian tương đương để sao lưu ...

  • Tôi không biết đó có phải là những gì họ đang làm hay không.
  • Nếu họ sử dụng mysqldump (hoặc tương tự), thì đó không phải là công thức an toàn - văn bản kết xuất của cơ sở dữ liệu có thể lớn hơn hoặc nhỏ hơn đáng kể.
  • Nếu họ sử dụng LVM, thì họ có chỗ cho một kết xuất nhị phân đầy đủ. Nhưng điều đó không có ý nghĩa vì BÒ.
  • (Vì vậy, tôi bỏ cuộc vào Quý 3.)

Dịch vụ Đám mây có thể đang thực hiện một số kiểu nén không?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để chọn số lượng khách truy cập trên mỗi khoảng thời gian ngày?

  2. Làm thế nào để khởi động máy chủ MySQL từ dòng lệnh trên Mac OS Lion?

  3. Hiệu suất Hibernate, JDBC và Java trên tập kết quả vừa và lớn

  4. Câu lệnh if trong quy trình được lưu trữ MySQL để chọn dữ liệu

  5. Tìm nạp bản ghi từ một bảng mà không có bản ghi trong bảng khác