·
每个表可支持高达64条索引(在MySQL 4.1.2之前为32条)。每条索引可由1~16个列或列元素组成。最大索引宽度为1000字节(在MySQL 4.1.2之前为500)。索引可使用具备CHAR、VARCHAR、BLOB或TEXT列类型的列前缀。
·对数种不同字符集的全面支持,包括latin1
(cp1252)、german、big5、ujis等。例如,在表名和列名中允许使用斯堪的纳维亚字符‘å’、‘ä’和‘ö’。从MySQL
4.1开始,提供了Unicode支持。
·
Replication(稳定)
大量使用复制功能的服务器均处于生产模式下,结果良好。在MySQL
5.x中,将继续增强复制功能。
·
InnoDB表(稳定)
自3.23.49版以来,InnoDB事务存储引擎一直很稳定。InnoDB正用于大型、重负荷生产系统。
·
BDB表(稳定)
Berkeley
DB码十分稳定,但在MySQL服务器中,我们仍在改进BDB事务存储引擎。
·
全文本搜索(稳定)
全文本搜索的使用范围十分广泛。在MySQL
4.0和4.1中,增加了重要的特性增强。
·
MyODBC 3.51(稳定)
MyODBC 3.51采用了ODBC SDK
3.51,并广泛用于生产活动中。某些出现的情况看上去与应用程序相关,与ODBC驱动程序或底层数据库服务器无关。
1.4.4. MySQL表最大能达到多少
由于在MySQL
3.23中使用了MyISAM存储引擎,最大表尺寸增加到了65536TB(2567
– 1字节)。
InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建。这样,表的大小就能超过单独文件的最大容量。表空间可包括原始磁盘分区,从而使得很大的表成为可能。表空间的最大容量为64TB。
在下面的表格中,列出了一些关于操作系统文件大小限制的示例。这仅是初步指南,并不是最终的。要想了解最新信息,请参阅关于操作系统的文档。
操作系统
文件大小限制
Linux 2.2-Intel 32-bit
2GB (LFS: 4GB)
Linux 2.4+
(using ext3 filesystem) 4TB
Solaris 9/10
16TB
NetWare w/NSS filesystem
8TB
win32 w/ FAT/FAT32
2GB/4GB
win32 w/ NTFS
2TB(可能更大)
MacOS X w/ HFS+
2TB
在Linux
2.2平台下,通过使用对ext2文件系统的大文件支持(LFS)补丁,可以获得超过2GB的MyISAM表。在Linux
2.4平台下,存在针对ReiserFS的补丁,可支持大文件(高达2TB)。目前发布的大多数Linux版本均基于2.4内核,包含所有所需的LFS补丁。使用JFS和XFS,petabyte(千兆兆)和更大的文件也能在Linux上实现。然而,最大可用的文件容量仍取决于多项因素,其中之一就是用于存储MySQL表的文件系统。
Windows用户请注意: FAT和VFAT
(FAT32)不适合MySQL的生产使用。应使用NTFS。
在默认情况下,MySQL创建的MyISAM表允许的最大尺寸为4GB。你可以使用SHOW
TABLE STATUS语句或myisamchk
-dv
tbl_name检查表的最大尺寸。
如果需要使用大于4GB的MyISAM表(而且你的操作系统支持大文件),可使用允许AVG_ROW_LENGTH和MAX_ROWS选项的CREATE
TABLE语句。请参见13.1.5节,“CREATE
TABLE语法”。创建了表后,也可以使用ALTER
TABLE更改这些选项,以增加表的最大允许容量。请参见13.1.2节,“ALTER
TABLE语法”。
处理MyISAM表文件大小的其他方式:
·
如果你的大表是只读的,可使用myisampack压缩它。myisampack通常能将表压缩至少50%,因而,从结果上看,可获得更大的表。此外,myisampack还能将多个表合并为1个表。请参见8.2节,“myisampack:生成压缩、只读MyISAM表”。
·
MySQL包含一个允许处理MyISAM表集合的MERGE库,这类MyISAM表具有与单个MERGE表相同的结构。请参见15.3节,“MERGE存储引擎”。