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

Cách kiểm tra kích thước của tất cả các bảng trong cơ sở dữ liệu trong MySQL

Trong MySQL, bạn có thể kiểm tra kích thước của tất cả các bảng trong một cơ sở dữ liệu nhất định (hoặc trên tất cả các cơ sở dữ liệu) bằng cách truy vấn information_schema.tables bàn. Bảng này lưu trữ dữ liệu về mỗi bảng trong cơ sở dữ liệu, bao gồm thông tin về kích thước của mỗi bảng, ngày tạo, đối chiếu, v.v.

Bạn cũng có thể tìm thấy kích thước của mỗi bảng trong cơ sở dữ liệu bằng cách sử dụng MySQL Workbench GUI.

Bài viết này cung cấp tổng quan nhanh về từng phương pháp.

Ví dụ về mã

Dưới đây là một ví dụ về truy vấn SQL trả về kích thước của các bảng trong cơ sở dữ liệu.

SELECT 
    table_name 'Table Name',
    data_length + index_length 'Size in Bytes',
    ROUND(((data_length + index_length) / 1024 / 1024), 2) 'Size in MiB'
FROM information_schema.tables
WHERE table_schema = 'sakila'
ORDER BY (data_length + index_length) DESC;

Kết quả:

+----------------------------+---------------+-------------+
| Table Name                 | Size in Bytes | Size in MiB |
+----------------------------+---------------+-------------+
| rental                     |       2785280 |        2.66 |
| payment                    |       2228224 |        2.13 |
| inventory                  |        376832 |        0.36 |
| film                       |        278528 |        0.27 |
| film_actor                 |        278528 |        0.27 |
| film_text                  |        196608 |        0.19 |
| customer                   |        131072 |        0.13 |
| address                    |        114688 |        0.11 |
| staff                      |         98304 |        0.09 |
| film_category              |         81920 |        0.08 |
| city                       |         65536 |        0.06 |
| store                      |         49152 |        0.05 |
| actor                      |         32768 |        0.03 |
| country                    |         16384 |        0.02 |
| language                   |         16384 |        0.02 |
| category                   |         16384 |        0.02 |
| staff_list                 |             0 |        0.00 |
| customer_list              |             0 |        0.00 |
| nicer_but_slower_film_list |             0 |        0.00 |
| actor_info                 |             0 |        0.00 |
| sales_by_film_category     |             0 |        0.00 |
| film_list                  |             0 |        0.00 |
| sales_by_store             |             0 |        0.00 |
+----------------------------+---------------+-------------+

Điều này trả về kích thước của mỗi bảng trong sakila cơ sở dữ liệu. Thay thế sakila với tên của cơ sở dữ liệu liên quan. Tất nhiên, bạn có thể bỏ qua WHERE hoàn toàn, và điều này sẽ trả về kích thước bảng của tất cả các bảng trên tất cả cơ sở dữ liệu, nhưng nó sẽ là một danh sách dài.

Trong trường hợp này, tôi đã sắp xếp các kết quả theo kích thước bảng theo thứ tự giảm dần. Tôi cũng đã thêm một cột có kích thước được chuyển đổi thành MiB (Mebibyte).

Một phương pháp chuyển đổi kích thước khác là sử dụng sys.FORMAT_BYTES() chức năng.

Hàm sys.FORMAT_BYTES ()

Bạn có thể sử dụng sys.FORMAT_BYTES() hàm chuyển đổi kích thước từ byte thành bytes , KiB (kibibyte), MiB (mebibytes), GiB (gibibyte), TiB (tebibyte) hoặc PiB (pebibyte), với chỉ số đơn vị được thêm vào giá trị. Chỉ báo đơn vị được thêm tự động. Hàm sẽ quyết định chuyển đổi thành đơn vị nào, tùy thuộc vào kích thước của giá trị, vì vậy bạn không có bất kỳ quyền kiểm soát nào đối với việc sử dụng đơn vị nào.

Dưới đây là một ví dụ về việc sử dụng phương pháp này:

SELECT 
    table_name 'Table Name',
    data_length + index_length 'Size in Bytes',
    sys.FORMAT_BYTES((data_length + index_length)) 'Size (Formatted)'
FROM information_schema.tables
WHERE table_schema = 'sakila'
ORDER BY (data_length + index_length) DESC;

Kết quả:

+----------------------------+---------------+------------------+
| Table Name                 | Size in Bytes | Size (Formatted) |
+----------------------------+---------------+------------------+
| rental                     |       2785280 | 2.66 MiB         |
| payment                    |       2228224 | 2.12 MiB         |
| inventory                  |        376832 | 368.00 KiB       |
| film                       |        278528 | 272.00 KiB       |
| film_actor                 |        278528 | 272.00 KiB       |
| film_text                  |        196608 | 192.00 KiB       |
| customer                   |        131072 | 128.00 KiB       |
| address                    |        114688 | 112.00 KiB       |
| staff                      |         98304 | 96.00 KiB        |
| film_category              |         81920 | 80.00 KiB        |
| city                       |         65536 | 64.00 KiB        |
| store                      |         49152 | 48.00 KiB        |
| actor                      |         32768 | 32.00 KiB        |
| category                   |         16384 | 16.00 KiB        |
| country                    |         16384 | 16.00 KiB        |
| language                   |         16384 | 16.00 KiB        |
| actor_info                 |             0 | 0 bytes          |
| customer_list              |             0 | 0 bytes          |
| film_list                  |             0 | 0 bytes          |
| nicer_but_slower_film_list |             0 | 0 bytes          |
| sales_by_film_category     |             0 | 0 bytes          |
| sales_by_store             |             0 | 0 bytes          |
| staff_list                 |             0 | 0 bytes          |
+----------------------------+---------------+------------------+

MySQL Workbench

Nếu bạn đang sử dụng MySQL Workbench GUI, bạn có thể trỏ và nhấp vào các kích thước bảng. Đây là cách thực hiện:

  1. Điều hướng đến cơ sở dữ liệu trong Schemas ngăn
  2. Di chuột qua cơ sở dữ liệu hiện hành
  3. Nhấp vào biểu tượng thông tin nhỏ bên cạnh tên cơ sở dữ liệu. Thao tác này tải thông tin về cơ sở dữ liệu, bao gồm kích thước gần đúng, số lượng bảng, đối chiếu, v.v.
  4. Nhấp vào Tables chuyển hướng. Điều này hiển thị thông tin về mỗi bảng trong cơ sở dữ liệu, bao gồm cả độ dài dữ liệu và độ dài chỉ mục.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tiện ích mở rộng mysql không được dùng nữa và sẽ bị xóa trong tương lai:hãy sử dụng mysqli hoặc PDO để thay thế

  2. Tìm kiếm toàn văn bản trong MySQL:Tốt, xấu và xấu

  3. Ví dụ QUARTER () - MySQL

  4. Cách tìm hàng thứ n trong MySQL

  5. Ứng dụng Android có thể kết nối trực tiếp với cơ sở dữ liệu mysql trực tuyến không