Chinaunix首页 | 论坛 | 博客
  • 博客访问: 251901
  • 博文数量: 103
  • 博客积分: 54
  • 博客等级: 民兵
  • 技术积分: 82
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 11:36
文章分类

全部博文(103)

文章存档

2016年(4)

2015年(91)

2014年(3)

2012年(5)

我的朋友

分类: Mysql/postgreSQL

2015-11-18 08:23:11

原文地址:MySQL中的极限值 作者:ning_lianjie

参考: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 辅助平面的字符使用四字节编码

 

阅读(1553) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~