MySQL的的主要特性

                             
 前段时间。苏宁给我SINA服务器的配置,装下了。安装的过程中出现了很多错误,在解决错误过程中,学到了很多有用的东西。这段时间吧MYSQL手册看了下,准备要好好的学学这个了,感觉很有用。毕竟很多公司都在使用MYSQL,对于我来说很有学习价值。
贴下学习:
下面介绍了MySQL数据库软件的一些重要特性。关于当前特性和即将提供特性的更多信息.
·         内部构件和可移植性
o        使用C和C++编写
o        用众多不同的编译器进行了测试
o        能够工作在众多不同的平台上。
o        使用GNU Automake、Autoconf和Libtool进行移植。
o        提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API。
o        采用核心线程的完全多线程 如果有多个CPU,它能方便地使用这些CPU。
o        提供了事务性和非事务性存储引擎。
o        使用了极快的“B树”磁盘表(MyISAM)和索引压缩。
o        添加另一个存储引擎相对简单。如果打算为内部数据库添加一个SQL接口,该特性十分有用。
o        极快的基于线程的内存分配系统。
o        通过使用优化的“单扫描多连接”,能实现极快的连接。
o        存储器中的哈希表用作临时表。
o        SQL函数是使用高度优化的类库实现的,运行很快。通常,在完成查询初始化后,不存在存储器分配。
o        采用Purify(商业内存溢出检测器)以及GPL工具Valgrind(http://developer.kde.org/~sewardj/)测试了MySQL代码。
o        服务器可作为单独程序运行在客户端/服务器联网环境下。它也可作为库提供,可嵌入(链接)到独立的应用程序中。这类应用程序可单独使用,也能在网络环境下使用。


列类型


众多列类型: 带符号/无符号整数,1、2、3、4、8字节长,FLOAT,DOUBLE,CHAR,VARCHAR,TEXT,BLOB,DATE,TIME,DATETIME,TIMESTAMP,YEAR,SET,ENUM,以及OpenGIS空间类型。

定长和可变长度记录。


语句和函数


在SELECT和查询的WHERE子句中,提供完整的操作符和函数支持。例如:
mysql> SELECT CONCAT(first_name, ' ', last_name) -> FROM citizen -> WHERE income/dependents > 10000 AND age > 30;

对SQL GROUP BY和ORDER BY子句的全面支持。支持聚合函数(COUNT(), COUNT(DISTINCT ...),AVG(),STD(),SUM(),MAX(),MIN()和GROUP_CONCAT())。

支持LEFT OUTER JOIN和RIGHT OUTER JOIN,采用标准的SQL和ODBC语法。

按照标准SQL的要求,支持表别名和列别名。

DELETE、INSERT、REPLACE和UPDATE返回更改(影响)的行数。连接到服务器时,可通过设置标志返回匹配的行数。

MySQL的SHOW命令可用于检索关于数据库、数据库引擎、表和索引的信息。EXPLAIN命令可用于确定优化器处理查询的方式。

函数名与表名或列名不冲突。例如,ABS是有效的列名。唯一的限制在于,调用函数时,函数名和随后的符号“(”之间不得有空格。

可以将不同数据库的表混合在相同的查询中。


安全


十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。


可伸缩性和限制


处理大型数据库: 我们使用了MySQL服务器和含5千万条记录的数据库。我们还听说,有些用户将MySQL用于含60000个表和约50亿行的数据库。

每个表可支持高达64条索引(在MySQL 4.1.2之前为32条)。每条索引可由1~16个列或列元素组成。最大索引宽度为1000字节(在MySQL 4.1.2之前为500)。索引可使用具备CHAR、VARCHAR、BLOB或TEXT列类型的列前缀。


连接性


在任何平台上,客户端可使用TCP/IP协议连接到MySQL服务器。在Windows系统的NT系列中(NT、2000、XP或2003),客户端可使用命名管道进行连接。在Unix系统中,客户端可使用Unix域套接字文件建立连接。

在MySQL 4.1和更高的版本中,如果是以“--shared-memory”选项开始,Windows服务器还支持共享内存连接。客户端可使用“--protocol=memory”选项,通过共享内存建立连接。

Connector/ODBC (MyODBC)接口为使用ODBC(开放式数据库连接性)连接的客户端程序提供了MySQL支持。例如,可以使用MS Access连接到你的MySQL服务器。客户端可运行在Windows或Unix平台上。提供了MyODBC源。支持所有的ODBC 2.5函数,以及众多其他函数。

Connector/J接口为使用JDBC连接的Java客户端程序提供了MySQL支持。客户端可运行在Windows或Unix平台上。提供了Connector/J源码。请参见。


本地化


服务器可使用多种语言向客户端提供错误消息。

对数种不同字符集的全面支持,包括latin1 (cp1252)、german、big5、ujis等。例如,在表名和列名中允许使用斯堪的纳维亚字符‘?’、‘?’和‘?’。从MySQL 4.1开始,提供了Unicode支持。

所有数据均以所选的字符集保存。正常字符串列的比较不区分大小写。

分类是根据所选的字符集(默认情况下,使用瑞典校对)进行的。启动MySQL服务器时,可更改该项设置。要想查看高级分类的示例,请参见Czech分类代码。MySQL服务器支持众多不同的字符集,这类字符集可在编译时和运行时指定。


客户端和工具


MySQL服务器提供了对SQL语句的内部支持,可用于检查、优化和修复表。通过mysqlcheck客户端,可在命令行上使用这类语句。MySQL还包括myisamchk,这是一种很快的命令行实用工具,可用于在MyISAM表上执行这类操作。


对于所有MySQL程序,均能通过“-help”或“-?”选项调用,以获取联机帮助信息。


 
MySQL稳定性
 
最初的代码可回溯至20世纪80年代初。它提供了稳定的编码基数,最初存储引擎使用的ISAM表格式仍保持向后兼容性。在MySQL AB公司的前身TcX,自1996年中期以来,MySQL代码在多个项目中工作良好,未出现任何问题。
当MySQL数据库软件首次向更广泛的公众发布时,我们的用户很快发现了一些未经测试的代码段。自那以后,尽管每个新版本具有很多新的特性,但每次新发布的版本均存在少量的移植性问题。
每次发布的MySQL服务器均是可用的。仅当用户尝试源自“灰色区域”的代码时才会出现问题。
MySQL服务器采用了多层设计和独立模块。在此列出了一些较新的模块,并指明了它们的测试情况。
· 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驱动程序或底层数据库服务器无关。

 


MySQL表最大能达到多少


MySQL 3.22限制的表大小为4GB。由于在MySQL 3.23中使用了MyISAM存储引擎,最大表尺寸增加到了65536TB(2567 – 1字节)。由于允许的表尺寸更大,MySQL数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由MySQL内部限制决定的。
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更改这些选项,以增加表的最大允许容量。
处理MyISAM表文件大小的其他方式:
·         如果你的大表是只读的,可使用myisampack压缩它。myisampack通常能将表压缩至少50%,因而,从结果上看,可获得更大的表。此外,myisampack还能将多个表合并为1个表。
·         MySQL包含一个允许处理MyISAM表集合的MERGE库,这类MyISAM表具有与单个MERGE表相同的结构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值