Kích thước của cơ sở dữ liệu trong MySQL là gì?

Đối với cơ sở dữ liệu MySQL, các hạn chế thông thường của chúng tôi đối với giới hạn dung lượng ổ đĩa và tài nguyên máy chủ được áp dụng, bao gồm mức sử dụng bộ nhớ, mức sử dụng CPU và ghi đĩa. Nói cách khác, việc sử dụng tài nguyên máy chủ của bất kỳ truy vấn MySQL nào bạn thực hiện được tính vào giới hạn tài nguyên của bạn, giống như việc sử dụng chính tập lệnh

Ngoài ra, giới hạn kích thước thực tế đối với cơ sở dữ liệu MySQL với dịch vụ lưu trữ được chia sẻ là

  • Cơ sở dữ liệu không được chứa hơn 1.000 bảng;
  • Mỗi bảng riêng lẻ không được vượt quá kích thước 1 GB hoặc 20 triệu hàng;
  • Tổng kích thước của tất cả các bảng trong cơ sở dữ liệu không được vượt quá 2 GB

Các giới hạn này khá cao. nhỏ hơn 0. 05% khách hàng của chúng tôi từng tạo cơ sở dữ liệu lớn như vậy và chúng tôi sẽ thông báo cho bạn nếu điều đó xảy ra. (Nếu bạn nhận được thông báo như vậy, bạn có thể muốn thử tối ưu hóa bảng để xem liệu nó có thể được nén để tiết kiệm dung lượng hay không, mặc dù điều này có thể ngăn cập nhật bảng trong vài phút. )

Mặc dù chúng tôi không thực thi các giới hạn này theo cách thủ công để ngăn bạn vượt quá chúng với số lượng nhỏ, nhưng bạn có thể gặp sự cố nếu làm như vậy. Ví dụ: các tập lệnh trên trang web của bạn có thể hết thời gian chờ trong quá trình sao lưu MySQL của các bảng lớn như vậy. Một ví dụ khác, chúng tôi giới hạn kích thước bảng tạm thời của MySQL ở mức 6 GB, điều này có thể ngăn việc sắp xếp các bảng chưa lập chỉ mục có kích thước vượt quá 1 GB. Ngoài ra, chúng tôi có thể vô hiệu hóa các cơ sở dữ liệu vượt quá các giới hạn này nếu chúng can thiệp vào các cơ sở dữ liệu khác trên cùng một máy chủ

Tôi có thể trả tiền cho bạn cho một gói vượt quá các giới hạn này không?

không may măn. Các giới hạn như thế này vốn có trong dịch vụ lưu trữ cơ sở dữ liệu dùng chung, đây là loại duy nhất chúng tôi cung cấp; . Nếu bạn không thể làm như vậy, rất tiếc, bạn sẽ cần phải chuyển trang web của mình sang một máy chủ chuyên dụng có thể xử lý tải trọng cao

Có điều gì khác mà tôi nên biết về MySQL và các tập dữ liệu lớn không?

Nếu bạn đang nhập một lượng lớn dữ liệu, hãy đảm bảo rằng bạn đang làm theo các mẹo trên trang "Nhập MySQL lớn" của chúng tôi. Điều đó sẽ tránh được các sự cố và giúp quá trình nhập của bạn diễn ra nhanh hơn nhiều

Nếu bạn muốn lấy kích thước của chỉ một cơ sở dữ liệu thay vì toàn bộ kết nối, hãy chèn WHERE vào câu lệnh

SELECT
    table_schema AS 'DB Name',
    ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) AS 'DB Size in MB'
FROM
    information_schema.tables
WHERE
    table_schema = 'db_name'
GROUP BY
    table_schema;

Kích thước của cơ sở dữ liệu trong MySQL là gì?


Cần một Công cụ GUI tốt cho MySQL? . 


Giống như hầu hết các cơ sở dữ liệu quan hệ, MySQL cung cấp siêu dữ liệu hữu ích về chính cơ sở dữ liệu đó. Trong khi hầu hết các cơ sở dữ liệu khác gọi thông tin này là catalog, thì tài liệu chính thức của MySQL lại gọi siêu dữ liệu INFORMATION_SCHEMAtables

Bất kể tên là gì, điều quan trọng là thông tin được cung cấp bởi các bảng INFORMATION_SCHEMA này. Tất cả mọi thứ từ views

+----------------------------------+-----------+
| Table                            | Size (MB) |
+----------------------------------+-----------+
| book                             |       267 |
| author                           |        39 |
| post                             |        27 |
| cache                            |        24 |
...
0 đến
+----------------------------------+-----------+
| Table                            | Size (MB) |
+----------------------------------+-----------+
| book                             |       267 |
| author                           |        39 |
| post                             |        27 |
| cache                            |        24 |
...
1 và tables đều có thể được tìm thấy trong INFORMATION_SCHEMA. Đối với mục đích của chúng tôi, chúng tôi đặc biệt quan tâm đến siêu dữ liệu tables mà chúng tôi có thể truy vấn để thực sự trích xuất kích thước của các bảng khác nhau trong hệ thống

Liệt kê kích thước bảng từ một cơ sở dữ liệu duy nhất

Như có thể thấy trong tài liệu chính thức, bảng

+----------------------------------+-----------+
| Table                            | Size (MB) |
+----------------------------------+-----------+
| book                             |       267 |
| author                           |        39 |
| post                             |        27 |
| cache                            |        24 |
...
5 chứa khoảng 20 cột, nhưng với mục đích xác định dung lượng ổ đĩa được sử dụng bởi các bảng, chúng tôi sẽ tập trung cụ thể vào hai cột.
+----------------------------------+-----------+
| Table                            | Size (MB) |
+----------------------------------+-----------+
| book                             |       267 |
| author                           |        39 |
| post                             |        27 |
| cache                            |        24 |
...
6 và
+----------------------------------+-----------+
| Table                            | Size (MB) |
+----------------------------------+-----------+
| book                             |       267 |
| author                           |        39 |
| post                             |        27 |
| cache                            |        24 |
...
7

  • +----------------------------------+-----------+
    | Table                            | Size (MB) |
    +----------------------------------+-----------+
    | book                             |       267 |
    | author                           |        39 |
    | post                             |        27 |
    | cache                            |        24 |
    ...
    
    6 là độ dài (hoặc kích thước) của tất cả dữ liệu trong bảng (trong
    +----------------------------------+-----------+
    | Table                            | Size (MB) |
    +----------------------------------+-----------+
    | book                             |       267 |
    | author                           |        39 |
    | post                             |        27 |
    | cache                            |        24 |
    ...
    
    9)
  • +----------------------------------+-----------+
    | Table                            | Size (MB) |
    +----------------------------------+-----------+
    | book                             |       267 |
    | author                           |        39 |
    | post                             |        27 |
    | cache                            |        24 |
    ...
    
    7 là độ dài (hoặc kích thước) của tệp chỉ mục cho bảng (cũng trong
    +----------------------------------+-----------+
    | Table                            | Size (MB) |
    +----------------------------------+-----------+
    | book                             |       267 |
    | author                           |        39 |
    | post                             |        27 |
    | cache                            |        24 |
    ...
    
    9)

Được trang bị thông tin này, chúng ta có thể thực hiện một truy vấn liệt kê tất cả các bảng trong một cơ sở dữ liệu cụ thể cùng với dung lượng đĩa (kích thước) của mỗi bảng. Chúng tôi thậm chí có thể sáng tạo hơn một chút và chuyển đổi các giá trị kích thước bình thường từ

+----------------------------------+-----------+
| Table                            | Size (MB) |
+----------------------------------+-----------+
| book                             |       267 |
| author                           |        39 |
| post                             |        27 |
| cache                            |        24 |
...
9 thành thứ gì đó hữu ích và dễ hiểu hơn đối với hầu hết mọi người như
SELECT
  TABLE_NAME AS `Table`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
  information_schema.TABLES
WHERE
    TABLE_SCHEMA = "bookstore"
  AND
    TABLE_NAME = "book"
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;
3

SELECT
  TABLE_NAME AS `Table`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
  information_schema.TABLES
WHERE
  TABLE_SCHEMA = "bookstore"
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;

Trong ví dụ này sử dụng cơ sở dữ liệu

SELECT
  TABLE_NAME AS `Table`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
  information_schema.TABLES
WHERE
    TABLE_SCHEMA = "bookstore"
  AND
    TABLE_NAME = "book"
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;
4, chúng tôi đang kết hợp
+----------------------------------+-----------+
| Table                            | Size (MB) |
+----------------------------------+-----------+
| book                             |       267 |
| author                           |        39 |
| post                             |        27 |
| cache                            |        24 |
...
6 và
+----------------------------------+-----------+
| Table                            | Size (MB) |
+----------------------------------+-----------+
| book                             |       267 |
| author                           |        39 |
| post                             |        27 |
| cache                            |        24 |
...
7 thành
+----------------------------------+-----------+
| Table                            | Size (MB) |
+----------------------------------+-----------+
| book                             |       267 |
| author                           |        39 |
| post                             |        27 |
| cache                            |        24 |
...
9, sau đó chia nó cho
SELECT
  TABLE_NAME AS `Table`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
  information_schema.TABLES
WHERE
    TABLE_SCHEMA = "bookstore"
  AND
    TABLE_NAME = "book"
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;
8 hai lần để chuyển đổi thành
SELECT
  TABLE_NAME AS `Table`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
  information_schema.TABLES
WHERE
    TABLE_SCHEMA = "bookstore"
  AND
    TABLE_NAME = "book"
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;
9 và sau đó là
SELECT
  TABLE_NAME AS `Table`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
  information_schema.TABLES
WHERE
    TABLE_SCHEMA = "bookstore"
  AND
    TABLE_NAME = "book"
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;
3. Tập kết quả của chúng tôi sẽ trông giống như thế này

+----------------------------------+-----------+
| Table                            | Size (MB) |
+----------------------------------+-----------+
| book                             |       267 |
| author                           |        39 |
| post                             |        27 |
| cache                            |        24 |
...

Nếu bạn không quan tâm đến tất cả các bảng trong cơ sở dữ liệu và chỉ muốn kích thước của một bảng cụ thể, bạn chỉ cần thêm

+-------+-----------+
| Table | Size (MB) |
+-------+-----------+
| book  |       267 |
+-------+-----------+
1 row in set (0.00 sec)
1 vào mệnh đề
+-------+-----------+
| Table | Size (MB) |
+-------+-----------+
| book  |       267 |
+-------+-----------+
1 row in set (0.00 sec)
2. Ở đây chúng tôi chỉ muốn thông tin về bảng
+-------+-----------+
| Table | Size (MB) |
+-------+-----------+
| book  |       267 |
+-------+-----------+
1 row in set (0.00 sec)
3

SELECT
  TABLE_NAME AS `Table`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
  information_schema.TABLES
WHERE
    TABLE_SCHEMA = "bookstore"
  AND
    TABLE_NAME = "book"
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;

Kết quả, như mong đợi, bây giờ

+-------+-----------+
| Table | Size (MB) |
+-------+-----------+
| book  |       267 |
+-------+-----------+
1 row in set (0.00 sec)

Liệt kê tất cả các kích thước bảng từ TẤT CẢ cơ sở dữ liệu

Nếu bạn đang gặp sự cố trong đó cơ sở dữ liệu của bạn đang tăng kích thước nhưng bạn không biết bảng nào là thủ phạm, thì có thể hữu ích khi truy vấn kích thước của tất cả các bảng trong tất cả các cơ sở dữ liệu trong toàn bộ hệ thống. Điều này có thể được thực hiện dễ dàng với truy vấn sau

SELECT
  TABLE_SCHEMA AS `Database`,
  TABLE_NAME AS `Table`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM
  information_schema.TABLES
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;

Điều này sẽ trả về không chỉ kích thước của bảng mà còn cả tên bảng và cơ sở dữ liệu mẹ mà nó được liên kết với

Kích thước của cơ sở dữ liệu trong SQL là gì?

Đối tượng Cơ sở dữ liệu

Làm cách nào để kiểm tra kích thước bảng trong cơ sở dữ liệu MySQL?

Điều này có thể được thực hiện dễ dàng với truy vấn sau. CHỌN TABLE_SCHEMA NHƯ `Cơ sở dữ liệu`, TABLE_NAME NHƯ `Bảng`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024/1024) NHƯ `Kích thước (MB)` TỪ information_schema.

Giới hạn của cơ sở dữ liệu MySQL là gì?

MySQL có không giới hạn số lượng cơ sở dữ liệu . Hệ thống tệp cơ bản có thể có giới hạn về số lượng thư mục. MySQL không có giới hạn về số lượng bảng.

Kích thước của một cơ sở dữ liệu điển hình là gì?

Một cơ sở dữ liệu chính thông thường chỉ có tệp dữ liệu 5 MB đến 10 MB .