内部结构和可移植性
- 用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, -?