MySQL中的极限值

MySQL中的极限值2013-01-07 11:14:57

分类: Mysql/postgreSQL


参考:http://dev.mysql.com/doc/refman/5.5/en/limits.html


join极限值

每个表join的最大个数是61.

库和表的极限值

MySQL,对库和表没有限制,不过在操作系统中会有文件个数的限制.
:innodb引擎下,每个库下面最多是40亿个表

表大小的极限值

MySQL内部没有对表大小的限制,通常是操作系统控制的.下表是一些操作系统对单个文件大小的极限值

Operating System

File-size Limit

Win32 w/ FAT/FAT32

2GB/4GB

Win32 w/ NTFS

2TB (possibly larger)

Linux 2.2-Intel 32-bit

2GB (LFS: 4GB)

Linux 2.4+

(using ext3 file system) 4TB

Solaris 9/10

16TB

MacOS X w/ HFS+

2TB

表中列数量和行大小的极限值

列的数量

每个表最多能创建的列的数量是4096,但是受很多因素引擎,并不能创建这么多.

  1. 每个表(不论什么引擎)的行的最大值是65535个字节.不同的存储引擎可以额外的约束行的最大值,但是不能超过65535个字节.
    例如
    每个utf8字符需要3个字节,对于CHAR(255)的列,每个值需要765个字节.如果一个表全部是CHAR(255),则最大的列的数量为85 (65535/765).
    对于VARCHAR(255),每个值需要767个字节,2个字节存储值的长度.

  2. 每个表都有一个.frm文件来存储表的定义,.frm文件的大小上限是64KB.

INNODB引擎的一些极限值.

  1. innodb最大允许1000个列

  2. innodb的行的最大是8000个字节,其中不包括VARBINARY, VARCHAR, BLOB, or TEXT 等列

  3. innodb存储的文件格式(COMPRESSED, REDUNDANT)不同,也会影响行的极限值.

参考

CHAR vs VARCHAR

In contrast to CHAR, VARCHAR values are stored as a 1-byte or 2-byte length prefix plus data. The length prefix indicates the number of bytes in the value. A column uses one length byte if values require no more than 255 bytes, two length bytes if values may require more than 255 bytes
http://dev.mysql.com/doc/refman/5.5/en/char.html

UTF8

UTF-8使用一至四个字节为每个字符编码:

  1. 128US-ASCII字符只需一个字节编码(Unicode范围由U+0000U+007F

  2. 带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要二个字节编码(Unicode范围由U+0080U+07FF

  3. 其他基本多文种平面(BMP)中的字符(这包含了大部分常用字)使用三个字节编码

  4. 其他极少使用的Unicode 辅助平面的字符使用四字节编码


本文出自 “Linux运维” 博客,请务必保留此出处http://2853725.blog.51cto.com/2843725/1394426

MySQL中的极限值,布布扣,bubuko.com

MySQL中的极限值

上一篇:MySQL监控模板说明-Percona MySQL Monitoring Template for Cacti


下一篇:如果人生也能存档——C#中的备忘录模式