Mysql的功能特点

182 阅读2分钟

内部结构和可移植性

  • 用C和C++编写。
  • 经多种编译器测试。
  • 在多平台上运行。
  • 用CMake。
  • 用Valgrind 和 Purify 内存监视器测试。
  • 使用多层设计和独立模块。
  • 被设计成使用核心线程的多线程,方便使用多核处理器。
  • 提供事务型和非事务型引擎。
  • 使用B-tree 磁盘结构做索引。
  • 使用非常快捷的基于线程的内存回收机制。
  • 使用非常快的优化的嵌套循环链接来处理链接(join)。
  • 支持内存hash表用来作为临时表使用。
  • 使用高度优化的类库实现SQL函数,该类库应该尽可能快。通常在查询初始化之后根本没有内存分配。
  • 可以使用server/client模式,也可以内嵌在系统中(在无网络环境中使用)。

数据类型

  • signed/unsigned integers 1, 2, 3, 4 and 8 bytes long
  • Float, double, char, archer, binary, varbinary, text, blob, date, time, datetime, timestamp, year, set, enum.

语句和函数

  • select where
  • group by, order by, group functions(COUNT(), AVG(), STD(), SUM(), MAX(), MIN(), GOUP_CONCAT)
  • left outer join, right outer join
  • alias,
  • delete, insert, replace, update
  • show
  • explain 语句来展示query是怎么执行的
  • 独立的函数名称和table, column命名

隐私性

  • 一种非常灵活和安全的特权和密码系统,支持基于主机的验证。
  • 当你连接到一个服务器时,对所有的密码流量进行加密。

可伸缩性和限制

  • 50 million records.
  • 每章表支持64ge索引,每个index支持1-16 columns。index 最大宽度是757 bytes or 3072 btyes(innoDB), myISAM中的最大宽度是1000bytes。

链接性

  • 可以通过几种协议链接到server,TCP/IP sockets,Unix domain socket files。
  • API for C, C++, Java, php, python and so on.
  • 支持ODBC。

本地化

  • 报错信息支持多语言。
  • 支持多种字符编码。
  • 排序和比较操作是基于默认字符集的。
  • timezone可以设置。

客户端和工具

  • 命令行工具mysqldump, mysqladmin。图形化工具mysql workbench。
  • 一些内置工具 mysqlcheck, myisamchk
  • --help, -?