MySQL 的几个重要特性
- 连通性
MySQL 是在假定的大部分应用都运行在TCP/IP协议的基础上而设计的。 - SQL
结构化查询语言 - 数据完整性
通过使用主键和外键约束,MySQL 支持引擎级的数据完整性。 - 事务
原子性:
事务被定义为一个或者一系列可以访问或改变数据库内容的动作。在 SQL 术语中,当一个或更多的 SQL 语句作为一个单元运行时,一个事务就发生了。在这样一个单元中,每一个SQL语句都与其他的 SQL 语句相互依赖。也就是说,如果一个语句没有完成,则整个的单元就会回滚,所有改变了的数据都返回到事务开始以前的状态。
在 MySQL 中,事务的开始标记为一个 begin 语句,直到发布一个 commit 命令来指示 MySQL 完成这个动作,我们才认为完成了一个事务。必要时,rollback 命令会把所有的改变初始化到begin命令执行之前的状态。
一致性:
当每一个事务使得系统处于一致状态时,不管事务是成功完成还是中途失败,一致性都会存在。
在 MySQL 中一致性主要由 MySQL 日志机制来处理,它记录了对数据库所做的所有改变,并且为事务恢复提供检查跟踪依据。如果系统在事务中途关机了,MySQL 恢复程序将使用这些日志来检查事务是否顺利完成,必要时要执行回滚。
除了日志程序外,MySQL 还提供了锁定机制,保证组成事务的所有表、行和索引由初始程序锁定足够长的时间,以便提交事务或回滚事务。
分离性:
分离性意味着每个事务在各自的空间内发生,与系统内可能发生的其他事务相互独立,而且还意味着只有组成事务的全部事件序列完全被执行后,事务的结果才可见。在这样的系统中,即使有多个事务同时发生,分离性原则也会保证只有在事务完全完成后,单个事务的结果才是可见的。
持久性:
持久性意味着即使在系统崩溃时,也要保存已提交的事务所做的改变。当一个事务完成并且数据库的日志被更新时,持久性就开始起作用了,通过对在数据库中以任何方式改变了数据的所有活动保存一个日志的方法,大多数 rdbms 产品保证数据的一致性。这个数据库日志追踪每一个对表,查询,报告等所做的更新。如果打开过数据库日志文件,我们就会知道当它开始写数据时,和使用它会使数据库执行速度减慢(但是它不会影响查询速度)。
MySQL 还可以连续的顺序为所有的数据操作行为保持一个二进制日志。然而,与其它数据库中的日志不同,这个日志容易阅读,因此根据这个日志使用最近的备份来恢复丢失的数据是一件比较简单的事情。 - 可扩展性
在它的开放源引导程序中,MySQL 把原始资料代码作为发布版本的一部分,允许开发者把经过编译输入主机的新功能和特性增加为核心产品的一部分。
- MySQL 的对称多线程
为了利用多处理器体系结构,MySQL 采用多线程设计,允许在多个处理器之间分派线程以达到更高的并行度。
MySQL 利用线程来完成的事情:
1.全局连接线程处理所有的连接请求,并且生成一个新的专用线程来为每个连接处理认证工作和 SQL 查询处理过程。这种类型的线程在TCP/IP和命名管道的连接上器作 用。
2.一个单独的线程处理内部信号和报警监听功能。
3.当被请求时,生成一个专用线程来刷新在指定区间内的所有表
4.使用一个延时的 insert 命令的表单获得自己的线程。
5.在复制时,主机的同步由个别线程处理。 - 安全性
访问一个 MySQL 数据库的过程可以分解成两个任务:连接 MySQL 服务器和访问个别对象。MySQL 有一个内建的安全性来检查两个阶段上用户的可信度。
MySQL 通过用户表管理用户认证,用户表不仅核查用户是否使用适当的用户名和口令正确登录,而且还核查连接是否来自一个授权的 TCP/IP 地址。一旦用户被连接,系统管理员就给予用户在对象和 MySQL 中实施的行为上的用户专有权力。 - 复制
复制是一种数据发布机制,它允许在远距离的地方放置表和数据库的副本,以便用户可以更加方便地访问它们。 - 应用程序接口
对应用程序开发者来说,MySQL 提供了一个用C语言编写的客户端和一组 API。API 提供了一组可以理解的规则,通过这些规则,主机语言可以连接 MySQL 和发送命令。使用 API ,可以保护客户端程序不受 MySQL 中能够影响连通性的任一改变的破坏。 - 附加工具
下面是较好的软件程序的简要列表
MySQL CC ,来之http://www.mysql.com/products/mysqlcc/index.html。它是一个极好的前端和数据库管理工具。
DBTools,专业管理器,来自http://www.dbtools.com.br,是一个用户管理 MySQL 数据库,表和索引的图形客户端,其输入来自其他 rdbms 的数据库,该管理提供一个用于查询和报告设计的接口。
phpMyAdmin,基于 Web 的 MySQL 管理来自http://www.phpmyadmin.rog