MySQL對于支持的數據庫的數量,表的數量,表的大小以及表中列的個數和每行允許的大小方面分別都有著自己的一些規定。 
MySQL本身沒有數據庫數量的限制,具體的數量限制取決于底層操作系統對目錄數量的支持程度。
MySQL本身沒有對表數量的限制,具體的數量限制取決于底層操作系統對文件數量的支持程度。一些存儲引擎會有自己的額外限制,InnoDB最大允許有40億張表。
MySQL本身沒有對表的大小的限制,具體的大小限制取決于底層操作系統對文件大小的支持程度。現代操作系統中文件系統里文件大小的支持一般都在TB級別。
硬性指標是每張表最多4096列,但是實際上具體可用的列數受到行的最大尺寸限制,根據每一列的類型,可能小于這個數。
無論存儲引擎是什么,每張表中一行的最大尺寸為65535 bytes。以 CHAR(255) CHARACTER SET utf8 定義的列,utf8每個字符最多會有3bytes的需求,所以255 * 3 = 765 bytes會被分配以存儲該類型的值,一行最大列數則為 65535 / 765 = 85列。
一些存儲引擎有自己的額外限制,InnoDB最大允許1000列,行尺寸需要小于數據庫頁的一半,大約8000bytes。
根據存儲引擎的不同,某些數據類型不受相應的最大行尺寸的限制,比如BLOG和TEXT。
MySQL中提供BLOG(binary large object)類型解決純粹的二進制數據的存儲,TEXT類型解決大文本數據的存儲,其存儲的信息和字符集關聯。
BLOG有4個類型TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB,每個類型有著自己允許的最大數據尺寸
| 類型 | 大小限制 |
|---|---|
| TINYBLOB | 127 bytes |
| BLOB | 65535 bytes |
| MEDIUMBLOB | 16777215 bytes |
| LONGBLOB | 4294967295 bytes |
TEXT有4個類型TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT,其和對應的BLOG類型有著同樣的允許的最大數據尺寸。
新聞熱點
疑難解答