MySQL的特性

本文翻译自官方mysql 5.7使用手册,参考原文地址:https://dev.mysql.com/doc/refman/5.7/en/features.html

一、内部结构与可移植性

1. 使用C和C++编写

2. 使用多种不同的编译器测试

3. 可在多个不同的平台中运行,可参考:https://www.mysql.com/support/supportedplatforms/database.html

4. 在 5.5之后的版本中,可以更方便的使用 CMake编译,5.5之前的版本使用 GNU Automake、Autoconf、和 Libtool

5. 使用Purify 、Valgrind测试(这两款都是内存泄漏测试工具)

6. 独立的模块采用多层服务设计

7.充分利用内核线程的多线程设计,更简单的使用多核CPU

8. 提供事务与非事务的存储引擎

9. 索引压缩使用 B-tree

10.能够想对简单的新增第三方存储引擎,这个更方便为内部的数据库提供SQL接口

11.基于非常快速的线程内存分配

12.快速执行循环嵌套

13.使用高度优化的类库,实现尽可能块的SQL函数。

14.在C/S的环境中,以独立的项目提供服务,这种应用可以在隔离或没有网络可用的环境中使用。

二、数据类型

1. 多种数据类型:有符号/无符号 1、2、3、4、8位整形,FLOAT, DOUBLE, CHAR, VARCHAR, BINARY, VARBINARY, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET, ENUM,地理位置信息

2. 固定长度和可变长度的字符串类型

三、语法与函数

1. 在 select 和 where 中支持运算和函数。例如:

mysql> SELECT CONCAT(first_name, ' ', last_name)
    -> FROM citizen
    -> WHERE income/dependents > 10000 AND age > 30;

2. 支持Group by 和 Order by 子句中使用组函数:COUNT(), AVG(), STD(), SUM(), MAX(), MIN(), and GROUP_CONCAT()

3. 支持 LEFT OUTER JOIN 和 RIGHT OUTER JOIN 以及标准的SQL和ODBC的语法

4. 支持表(table)和列(column)的别名

5. 支持DELETE, INSERT, REPLACE,  UPDATE的操作返回操作的行数.

6. 支持MYSQL的特定show语法,可检索数据库、存储引擎、表、索引信息。使用标准的SQL实现 INFORMATION_SCHEMA 表的数据。

7. EXPLAIN优化检索分析

8. 可以关联不同数据库之间的表

四、安全

1. 使用host-based verification实现的,灵活、安全的权限密码系统。

2. 密码在连接服务器时加密

五、扩展性与限制

1. 目前使用的数据库包含了 5000万条记录,在我们知道的使用者当中,MYSQL的服务包含20万个表,及50亿条记录。

2. 每个表支持64个索引,每个索引支持1-16个列,在InnoDB中,最大支持767或3072个字节。MyISAM中支持1000个字节。索引可以使用前缀的列CHAR,VARCHAR,BLOB,或文本列类型

六、连接

1. Unix系统中支持TCP/IP协议以及socket,window系统支持tcp/ip、命名管道、共享内存

2. 客户端支持多种语言

3. 提供C, C++, Eiffel, Java, Perl, PHP, Python, Ruby 等版本的API

4. 支持ODBC和JDBC、ADO.NET

七、本地化

1. 提供多种语言的错误消息

2. 提供多种字符集

3. 根据选择的字符集保存数据

4. 按照默认的字符排序和比较

八、客户端与工具

1. 可执行程序:mysqldump 和 mysqladmin,可视化工具:MySQL Workbench

2. mysqlcheck

3. 使用–help or -? 选项,查看更多内容

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>