Hướng dẫn how big is too big for mysql database? - lớn bao nhiêu là quá lớn đối với cơ sở dữ liệu mysql?

Không có một giải pháp chung tuyệt vời nào cho câu hỏi "Làm thế nào lớn quá lớn" - những mối quan tâm như vậy thường phụ thuộc vào những gì bạn đang làm với dữ liệu của bạn và những cân nhắc về hiệu suất của bạn là gì.

Có một số giới hạn cơ bản trên kích thước bảng. Bạn không thể có hơn 1000 cột. Hồ sơ của bạn không thể lớn hơn 8k mỗi cái. Những giới hạn này thay đổi tùy thuộc vào công cụ cơ sở dữ liệu. (Những cái ở đây là cho Innodb.)

Có vẻ như bạn đã hợp nhất một số bộ dữ liệu khác nhau vào một bảng. Bạn có thể có một số trường cho bạn biết dữ liệu nào đặt bản ghi này liên quan, cùng với một số trường dữ liệu và một số thông tin dấu thời gian. Đó không phải là một bản ghi rất rộng (trừ khi bạn đăng nhập, giả sử, tất cả các tham số đầu vào của mỗi yêu cầu.) Vấn đề chính của bạn sẽ là với tính chọn lọc. Lập chỉ mục bảng này một cách có ý nghĩa sẽ là một thách thức. Nếu các trường chung của bạn có thể đủ chọn lọc để bạn có thể sử dụng chúng để đến các hồ sơ bạn muốn mà không cần tham khảo bảng, đó sẽ là một điểm cộng rất lớn. (Xem quét bảng)selectivity. Indexing this table in a meaningful way will be a challenge. If your common fields can be selective enough that you can use them to get to the records you want without consulting the table, that will be a huge plus. (Cf. table scan)

Đối với nhiều hồ sơ mỗi ngày (về cơ bản, hai một giây cả ngày và tôi cho rằng bạn có thời gian tải cực đại khi nó cao hơn nhiều), bạn cũng muốn đảm bảo rằng bạn đặc biệt xem xét tối ưu hóa về việc cải thiện việc chèn tốc độ, vận tốc. Theo nguyên tắc chung, nhiều chỉ mục hơn = chèn chậm hơn. Nếu bạn có thể, hãy xem xét lưu trữ hoàn toàn các hồ sơ lỗi thời cho một bảng khác. Trong các nơi làm việc trước đó, chúng tôi đã sử dụng một chiến lược lưu trữ của tháng trước, ba tháng trước, sáu tháng trước, mỗi bảng trong các bảng riêng biệt. Một ý tưởng khác là xóa các hồ sơ cũ hơn. Nhiều môi trường chỉ đơn giản là không cần thông tin ngoài một ngày nhất định. Treo vào hồ sơ ghi nhật ký từ ba tháng trước thường quá đắt.improving insertion speed. As a general rule, more indexes = slower insertions. If you can, consider archiving off outdated records to another table entirely. In prior workplaces, we've used an archival strategy of Last Month, Prior Three Months, Prior Six Months, each in separate tables. Another idea is to delete older records. Many environments simply don't need information beyond a certain date. Hanging on to logging records from three months ago is often overly expensive.

Cuối cùng, đừng bỏ qua việc lưu trữ vật lý của bàn của bạn. Hồ sơ của bạn càng mỏng, IO vật lý càng ít cần phải đọc (hoặc cho vấn đề đó, để chèn) một bản ghi. Bạn có thể lưu trữ các chỉ mục của mình trên một ổ cứng vật lý riêng biệt. Nếu có nhiều dữ liệu dự phòng trong hồ sơ của bạn lưu trữ bảng được nén thực sự có thể tăng tốc độ. Nếu bạn có một ít tiền mặt để đốt, hãy xem xét giá trị của một mảng RAID tốt để sọc dữ liệu của bạn.physical storage of your table. The thinner your records are, the less physical IO needs to occur to read (or for that matter, to insert) a record. You can store your indexes on a separate physical hard drive. If there's a lot of redundant data in your records storing the table compressed might actually be a speed increase. If you have a little cash to burn, consider the value of a good RAID array for striping your data.

Vì vậy, để trả lời câu hỏi cơ bản của bạn: Đó là rất nhiều hồ sơ, nhưng với một con mắt cẩn thận đối với việc điều chỉnh, nó sẽ không phải là một vấn đề.

  • Biểu diễn bên trong của bảng MySQL có giới hạn kích thước hàng tối đa là 65.535 byte, ngay cả khi công cụ lưu trữ có khả năng hỗ trợ các hàng lớn hơn. Các cột BLOB

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    0 chỉ đóng góp 9 đến 12 byte vào giới hạn kích thước hàng vì nội dung của chúng được lưu trữ riêng biệt với phần còn lại của hàng.

  • Kích thước hàng tối đa cho bảng

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    1, áp dụng cho dữ liệu được lưu trữ cục bộ trong trang cơ sở dữ liệu, hơi ít hơn nửa trang trong cài đặt 4kb, 8kb, 16kb và 32kb
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    2. Ví dụ: kích thước hàng tối đa thấp hơn một chút so với 8kb cho kích thước trang 16kb
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    1 mặc định. Đối với 64kb trang, kích thước hàng tối đa hơi nhỏ hơn 16kb. Xem giới hạn Innodb.

    Nếu một hàng chứa các cột có độ dài thay đổi vượt quá kích thước hàng tối đa

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    1,
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    1 chọn các cột có độ dài thay đổi để lưu trữ ngoài trang bên ngoài cho đến khi hàng phù hợp với giới hạn kích thước hàng
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    1. Lượng dữ liệu được lưu trữ cục bộ cho các cột có độ dài thay đổi được lưu trữ ngoài trang khác nhau theo định dạng hàng. Để biết thêm thông tin, xem các định dạng hàng Innodb.

  • Các định dạng lưu trữ khác nhau sử dụng số lượng khác nhau của tiêu đề trang và dữ liệu rơ moóc, ảnh hưởng đến lượng lưu trữ có sẵn cho các hàng.

    • Để biết thông tin về các định dạng hàng

      mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
             c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
             f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
      ERROR 1118 (42000): Row size too large. The maximum row size for the used
      table type, not counting BLOBs, is 65535. This includes storage overhead,
      check the manual. You have to change some columns to TEXT or BLOBs
      1, hãy xem các định dạng hàng Innodb.

    • Để biết thông tin về các định dạng lưu trữ

      mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
             c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
             f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
      ERROR 1118 (42000): Row size too large. The maximum row size for the used
      table type, not counting BLOBs, is 65535. This includes storage overhead,
      check the manual. You have to change some columns to TEXT or BLOBs
      8, hãy xem các định dạng lưu trữ bảng Myisam.

  • Giới hạn kích thước hàng tối đa MySQL của 65,535 byte được thể hiện trong các ví dụ

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    1 và
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    8 sau đây. Giới hạn được thực thi bất kể công cụ lưu trữ, mặc dù công cụ lưu trữ có thể có khả năng hỗ trợ các hàng lớn hơn.

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=InnoDB CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs

    Trong ví dụ

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    8 sau đây, việc thay đổi cột thành
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    0 tránh giới hạn kích thước hàng 65,535 byte và cho phép hoạt động thành công vì các cột BLOB và ____1010 chỉ đóng góp 9 đến 12 byte cho kích thước hàng.

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g TEXT(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    Query OK, 0 rows affected (0.02 sec)

    Hoạt động thành công cho bảng

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    1 vì thay đổi cột thành
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    0 tránh giới hạn kích thước hàng MySQL 65,535-byte và lưu trữ ngoài trang của các cột có độ dài thay đổi tránh giới hạn kích thước hàng
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    1.

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g TEXT(6000)) ENGINE=InnoDB CHARACTER SET latin1;
    Query OK, 0 rows affected (0.02 sec)
  • Lưu trữ cho các cột có độ dài thay đổi bao gồm các byte dài, được tính vào kích thước hàng. Ví dụ: cột

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g TEXT(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    Query OK, 0 rows affected (0.02 sec)
    9 mất hai byte để lưu trữ độ dài của giá trị, do đó mỗi giá trị có thể mất tới 767 byte.

    Tuyên bố để tạo Bảng

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g TEXT(6000)) ENGINE=InnoDB CHARACTER SET latin1;
    Query OK, 0 rows affected (0.02 sec)
    0 thành công vì các cột yêu cầu 32.765 + 2 byte và 32.766 + 2 byte, nằm trong kích thước hàng tối đa là 65.535 byte:

    mysql> CREATE TABLE t1
           (c1 VARCHAR(32765) NOT NULL, c2 VARCHAR(32766) NOT NULL)
           ENGINE = InnoDB CHARACTER SET latin1;
    Query OK, 0 rows affected (0.02 sec)

    Câu lệnh để tạo bảng

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g TEXT(6000)) ENGINE=InnoDB CHARACTER SET latin1;
    Query OK, 0 rows affected (0.02 sec)
    1 bị lỗi bởi vì, mặc dù độ dài cột nằm trong độ dài tối đa là 65,535 byte, hai byte bổ sung được yêu cầu để ghi lại độ dài, khiến kích thước hàng vượt quá 65,535 byte:

    mysql> CREATE TABLE t2
           (c1 VARCHAR(65535) NOT NULL)
           ENGINE = InnoDB CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs

    Giảm chiều dài cột xuống còn 65,533 hoặc ít hơn cho phép câu lệnh thành công.

    mysql> CREATE TABLE t2
           (c1 VARCHAR(65533) NOT NULL)
           ENGINE = InnoDB CHARACTER SET latin1;
    Query OK, 0 rows affected (0.01 sec)
  • Đối với các bảng

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    8, các cột
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g TEXT(6000)) ENGINE=InnoDB CHARACTER SET latin1;
    Query OK, 0 rows affected (0.02 sec)
    3 yêu cầu không gian bổ sung trong hàng để ghi lại xem các giá trị của chúng có phải là
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g TEXT(6000)) ENGINE=InnoDB CHARACTER SET latin1;
    Query OK, 0 rows affected (0.02 sec)
    3 hay không. Mỗi cột
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g TEXT(6000)) ENGINE=InnoDB CHARACTER SET latin1;
    Query OK, 0 rows affected (0.02 sec)
    3 mất thêm một chút, làm tròn lên byte gần nhất.

    Câu lệnh để tạo bảng

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g TEXT(6000)) ENGINE=InnoDB CHARACTER SET latin1;
    Query OK, 0 rows affected (0.02 sec)
    6 không thành công vì
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    8 yêu cầu không gian cho các cột
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g TEXT(6000)) ENGINE=InnoDB CHARACTER SET latin1;
    Query OK, 0 rows affected (0.02 sec)
    3 ngoài không gian cần thiết cho các byte dài cột có độ dài thay đổi, khiến kích thước hàng vượt quá 65,535 byte:

    mysql> CREATE TABLE t3
           (c1 VARCHAR(32765) NULL, c2 VARCHAR(32766) NULL)
           ENGINE = MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs

    Để biết thông tin về lưu trữ cột

    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    1
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g TEXT(6000)) ENGINE=InnoDB CHARACTER SET latin1;
    Query OK, 0 rows affected (0.02 sec)
    3, hãy xem các định dạng hàng Innodb.

  • mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    1 giới hạn kích thước hàng (đối với dữ liệu được lưu trữ cục bộ trong trang cơ sở dữ liệu) xuống ít hơn một nửa trang cơ sở dữ liệu cho các cài đặt 4kb, 8kb, 16kb và 32kb
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    2 và nhỏ hơn một chút so với 16kb cho 64kB trang.

    Câu lệnh để tạo Bảng

    mysql> CREATE TABLE t1
           (c1 VARCHAR(32765) NOT NULL, c2 VARCHAR(32766) NOT NULL)
           ENGINE = InnoDB CHARACTER SET latin1;
    Query OK, 0 rows affected (0.02 sec)
    3 không thành công vì các cột được xác định vượt quá giới hạn kích thước hàng cho trang 16kb
    mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000),
           c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
           f VARCHAR(10000), g VARCHAR(6000)) ENGINE=MyISAM CHARACTER SET latin1;
    ERROR 1118 (42000): Row size too large. The maximum row size for the used
    table type, not counting BLOBs, is 65535. This includes storage overhead,
    check the manual. You have to change some columns to TEXT or BLOBs
    1.

    mysql> CREATE TABLE t4 (
           c1 CHAR(255),c2 CHAR(255),c3 CHAR(255),
           c4 CHAR(255),c5 CHAR(255),c6 CHAR(255),
           c7 CHAR(255),c8 CHAR(255),c9 CHAR(255),
           c10 CHAR(255),c11 CHAR(255),c12 CHAR(255),
           c13 CHAR(255),c14 CHAR(255),c15 CHAR(255),
           c16 CHAR(255),c17 CHAR(255),c18 CHAR(255),
           c19 CHAR(255),c20 CHAR(255),c21 CHAR(255),
           c22 CHAR(255),c23 CHAR(255),c24 CHAR(255),
           c25 CHAR(255),c26 CHAR(255),c27 CHAR(255),
           c28 CHAR(255),c29 CHAR(255),c30 CHAR(255),
           c31 CHAR(255),c32 CHAR(255),c33 CHAR(255)
           ) ENGINE=InnoDB ROW_FORMAT=COMPACT DEFAULT CHARSET latin1;
    ERROR 1118 (42000): Row size too large (> 8126). Changing some columns to TEXT or BLOB or using
    ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768
    bytes is stored inline.

Làm thế nào lớn là quá lớn đối với một bàn MySQL?

Biểu diễn bên trong của bảng MySQL có giới hạn kích thước hàng tối đa là 65.535 byte, ngay cả khi công cụ lưu trữ có khả năng hỗ trợ các hàng lớn hơn.65,535 bytes, even if the storage engine is capable of supporting larger rows.

Có giới hạn cơ sở dữ liệu MySQL không?

MySQL không có giới hạn về 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.. The underlying file system may have a limit on the number of directories. MySQL has no limit on the number of tables.

MySQL có thể xử lý 1 triệu hồ sơ không?

MySQL có thể xử lý 100 triệu hồ sơ không?Vâng, nó có thể xử lý hàng tỷ hồ sơ.Nếu bạn lập chỉ mục đúng các bảng, chúng phù hợp với bộ nhớ và các truy vấn của bạn được viết đúng thì nó không phải là một vấn đề.Yeah, it can handle billions of records. If you properly index tables, they fit in memory and your queries are written properly then it shouldn't be an issue.

Làm thế nào lớn là một cơ sở dữ liệu MySQL lớn?

Ngoài ra, giới hạn kích thước thực tế trên cơ sở dữ liệu MySQL với lưu trữ được chia sẻ là: cơ sở dữ liệu không nên chứa hơn 1.000 bảng;Mỗi bảng riêng lẻ không được vượt quá 1 GB kích thước 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.Each individual table should not exceed 1 GB in size or 20 million rows; The total size of all the tables in a database should not exceed 2 GB.