Trong MySQL, bạn có thể truy vấn information_schema.tables
bảng để trả về thông tin về các bảng trong cơ sở dữ liệu. Bảng này bao gồm thông tin về độ dài dữ liệu, độ dài chỉ mục, cũng như các chi tiết khác như đối chiếu, thời gian tạo, v.v. Bạn có thể sử dụng thông tin trong bảng này để tìm kích thước của cơ sở dữ liệu nhất định hoặc tất cả cơ sở dữ liệu trên máy chủ.
Bạn cũng có thể sử dụng MySQL Workbench GUI để tìm thông tin chi tiết về cơ sở dữ liệu (bao gồm cả kích thước của nó).
Bài viết này cung cấp tổng quan nhanh về cả hai phương pháp.
Ví dụ về mã
Dưới đây là ví dụ về cách tìm kích thước của từng cơ sở dữ liệu bằng cách chạy truy vấn đối với information_schema.tables
bảng:
SELECT table_schema 'Database Name', SUM(data_length + index_length) 'Size in Bytes', ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) 'Size in MiB' FROM information_schema.tables GROUP BY table_schema;
Kết quả:
+--------------------+---------------+-------------+ | Database Name | Size in Bytes | Size in MiB | +--------------------+---------------+-------------+ | information_schema | 0 | 0.00 | | Music | 98304 | 0.09 | | mysql | 2506752 | 2.39 | | performance_schema | 0 | 0.00 | | sakila | 6766592 | 6.45 | | Solutions | 16384 | 0.02 | | sys | 16384 | 0.02 | | world | 802816 | 0.77 | +--------------------+---------------+-------------+
Trong ví dụ này, tôi đã liệt kê kích thước tính bằng byte và theo mebibyte (MiB), nhưng bạn có thể chọn cách bạn muốn trình bày.
Tất nhiên, bạn luôn có thể thu hẹp nó vào một cơ sở dữ liệu cụ thể nếu bạn cần. Chỉ cần thêm WHERE
mệnh đề với tên của cơ sở dữ liệu:
SELECT table_schema 'Database Name', SUM(data_length + index_length) 'Size in Bytes', ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) 'Size in MiB' FROM information_schema.tables WHERE table_schema = 'sakila';
Kết quả:
+---------------+---------------+-------------+ | Database Name | Size in Bytes | Size in MiB | +---------------+---------------+-------------+ | sakila | 6766592 | 6.45 | +---------------+---------------+-------------+
Hàm FORMAT_BYTES ()
Bạn có thể sử dụng sys.FORMAT_BYTES()
chức năng tự lưu chuyển đổi kích thước thành mebibyte, kibibyte hoặc bất cứ thứ gì. Hàm này nhận một giá trị, chuyển đổi nó sang định dạng mà con người có thể đọc được và trả về một chuỗi bao gồm một giá trị và một chỉ báo đơn vị. Giá trị được chuyển đổi sẽ phụ thuộc vào kích thước của giá trị (vì vậy kết quả có thể bằng bytes
, KiB
(kibibyte), MiB
(mebibytes), GiB
(gibibyte), TiB
(tebibyte) hoặc PiB
(pebibyte).
Dưới đây là một ví dụ về việc viết lại ví dụ trước đó để sử dụng FORMAT_BYTES()
chức năng:
USE Music; SELECT table_schema 'Database Name', SUM(data_length + index_length) 'Size in Bytes', sys.FORMAT_BYTES(SUM(data_length + index_length)) 'Size (Formatted)' FROM information_schema.tables GROUP BY table_schema;
Kết quả:
+--------------------+---------------+------------------+ | Database Name | Size in Bytes | Size (Formatted) | +--------------------+---------------+------------------+ | information_schema | 0 | 0 bytes | | Music | 98304 | 96.00 KiB | | mysql | 2506752 | 2.39 MiB | | performance_schema | 0 | 0 bytes | | sakila | 6766592 | 6.45 MiB | | Solutions | 16384 | 16.00 KiB | | sys | 16384 | 16.00 KiB | | world | 802816 | 784.00 KiB | +--------------------+---------------+------------------+
MySQL Workbench
Một cách khác để tìm kích thước cơ sở dữ liệu là sử dụng MySQL Workbench GUI. Đâ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. Kích thước cơ sở dữ liệu được liệt kê trên
Info
(thường là tab mặc định).