1.3.2 MySQL的主要特点

本节介绍MySQL数据库软件的一些重要特性。在大多数方面,路线图适用于所有版本的MySQL。有关特定功能的信息,请参见相关手册“In a Nutshell”部分,

内部和便携性

  • 用C和C ++编写。

  • 测试与广泛的不同的编译器。

  • 适用于许多不同的平台。请参阅http://www.mysql.com/support/supportedplatforms/database.html

  • 为了便于携带,在MySQL 5.5及以上版本中使用CMake。以前的系列使用GNU Automake,Autoconf和Libtool。

  • 使用Purify(商业内存泄漏检测器)以及GPG工具Valgrind(http://developer.kde.org/~sewardj/)进行测试。

  • 使用具有独立模块的多层服务器设计。

  • 设计为使用内核线程完全多线程,如果可用,轻松使用多个CPU。

  • 提供事务性和非事务性存储引擎。

  • 使用非常快速的B树磁盘表(MyISAM)与索引压缩。

  • 旨在使其相对容易添加其他存储引擎。如果要为内部数据库提供SQL接口,这将非常有用。

  • 使用非常快的基于线程的内存分配系统。

  • 使用优化的嵌套循环连接执行非常快速的连接。

  • 实现内存中的哈希表,用作临时表。

  • 使用应尽可能快的高度优化的类库实现SQL函数。查询初始化后,通常没有内存分配。

  • 将服务器作为单独的程序提供在客户端/服务器网络环境中使用,以及可以嵌入(链接)到独立应用程序中的库。这样的应用可以被隔离使用,也可以在没有网络可用的环境中使用。

数据类型

声明和功能

  • 查询的SELECT列表和WHERE子句中的完整的运算符和函数支持。例如:

    mysql
    >
    SELECT CONCAT(first_name, ' ', last_name)
    
        - 
    >
    FROM citizen
    
        - 
    >
    WHERE income/dependents 
    >
     10000 AND age 
    >
     30;
    
  • 完全支持SQLGROUP BYORDER BY子句。支持基函数(COUNT()AVG()STD()SUM()MAX()MIN(),和GROUP_CONCAT())。

  • 支持LEFT OUTER JOINRIGHT OUTER JOIN使用标准SQL和ODBC语法。

  • 支持标准SQL所需的表和列上的别名。

  • 支持DELETEINSERTREPLACE,和UPDATE以返回更改(受影响)的行数,或返回通过连接到服务器时设置标志,而不是匹配的行的数量。

  • 支持SHOW查询有关数据库,存储引擎,表和索引的信息的特定于MySQL的语句。支持INFORMATION_SCHEMA数据库,按照标准SQL实现。

  • 一个EXPLAIN语句来显示优化器如何解决一个查询。

  • 功能名称与表或列名称的独立性。例如,ABS是一个有效的列名。唯一的限制是对于函数调用,函数名称和跟随它之后的“(”不允许有空格。请参见第9.3节“关键字和保留字”

  • 您可以在同一语句中引用来自不同数据库的表。

安全

  • 一种非常灵活和安全的权限和密码系统,可实现基于主机的验证。

  • 当您连接到服务器时,通过加密所有密码流量来进行密码安全。

可扩展性和限制

  • 支持大型数据库。我们使用MySQL Server与包含5000万条记录的数据库。我们还知道使用MySQL Server的用户有20万个表,大约有5,000,000,000行。

  • 每个表最多支持64个索引。每个索引可以由1到16列或部分列组成。InnoDB表的最大索引宽度为767字节或3072字节。请参见第14.8.8节“对InnoDB表的限制”MyISAM表的最大索引宽度为1000字节。请参见第15.2节“MyISAM存储引擎”。索引可使用的柱的前缀CHARVARCHARBLOB,或TEXT列类型。

连接性

  • 客户端可以使用多种协议连接到MySQL服务器:

    • 客户端可以在任何平台上使用TCP / IP套接字进行连接。

    • 在Windows系统上,如果使用该--enable-named-pipe选项启动服务器,客户端可以使用命名管道进行连接。Windows服务器还支持共享内存连接,如果启动该--shared-memory选项。客户端可以使用该--protocol=memory选项连接共享内存。

    • 在Unix系统上,客户端可以使用Unix域套接字文件进行连接。

  • MySQL客户端程序可以用很多语言编写。用C编写的客户端库可用于以C或C ++编写的客户端,也可用于提供C绑定的任何语言。

  • 可以使用C,C ++,Eiffel,Java,Perl,PHP,Python,Ruby和Tcl的API,使MySQL客户端可以用多种语言编写。请参见第23章连接器和API

  • Connector / ODBC(MyODBC)接口为使用ODBC(开放数据库连接)连接的客户端程序提供MySQL支持。例如,您可以使用MS Access连接到MySQL服务器。客户端可以在Windows或Unix上运行。连接器/ ODBC源可用。支持所有ODBC 2.5功能,还有许多其他功能。请参阅“MySQL连接器/ ODBC开发人员指南”

  • Connector / J接口为使用JDBC连接的Java客户端程序提供MySQL支持。客户可以在Windows或Unix上运行。连接器/ J源可用。请参阅“MySQL Connector / J 5.1开发人员指南”

  • MySQL Connector / Net使开发人员能够轻松创建需要使用MySQL安全,高性能数据连接的.NET应用程序。它实现了所需的ADO.NET接口,并集成到ADO.NET感知工具中。开发人员可以使用他们选择的.NET语言构建应用程序。MySQL Connector / Net是一个完全托管的ADO.NET驱动程序,用100%纯C#编写。请参阅“MySQL Connector / Net开发人员指南”

本土化

  • 服务器可以向许多语言的客户端提供错误消息。请参见第10.2节“设置错误消息语言”

  • 几个不同的字符集,包括全面支持latin1(CP1252) ,germanbig5ujis一些Unicode字符集等。例如,表和列名称中允许使用斯堪的纳维亚文字“å”,“ä”和“ö”。

  • 所有数据都保存在所选字符集中。

  • 根据默认字符集和排序规则进行排序和比较。可以在启动MySQL服务器时更改此内容(请参见第10.1.3.2节“服务器字符集和排序规则”)。要查看非常高级排序的示例,请查看捷克排序代码。MySQL Server支持许多不同的字符集,可以在编译时和运行时指定。

  • 服务器时区可以动态更改,各个客户端可以指定自己的时区。请参见第10.6节“MySQL服务器时区支持”

客户和工具

  • MySQL包括几个客户端和实用程序。这些包括诸如mysqldumpmysqladmin之类的命令行程序以及诸如MySQL Workbench之类的图形程序。

  • MySQL服务器内置支持SQL语句来检查,优化和修复表。这些语句可以从命令行通过mysqlcheck客户端获得。MySQL还包括myisamchk,这是一个用于在MyISAM表上执行这些操作的非常快速的命令行实用程序。请参见第4章MySQL程序

  • 可以使用--help-?选项来调用MySQL程序来获取在线帮助。

results matching ""

    No results matching ""