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:
- Điều hướng đến cơ sở dữ liệu trong
Schemas
ngăn - Di chuột qua cơ sở dữ liệu hiện hành
- 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.
- 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.