Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2851366
  • 博文数量: 348
  • 博客积分: 2907
  • 博客等级: 中校
  • 技术积分: 2272
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-12 09:16
个人简介

专注 K8S研究

文章分类

全部博文(348)

文章存档

2019年(22)

2018年(57)

2016年(2)

2015年(27)

2014年(33)

2013年(190)

2011年(3)

2010年(14)

分类: Mysql/postgreSQL

2013-07-24 01:32:17

原文地址: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 辅助平面的字符使用四字节编码

 

阅读(780) | 评论(0) | 转发(0) |
0

上一篇:[HowTo]-死锁

下一篇:MySQL数据导出与导入

给主人留下些什么吧!~~