1.3 MySQL简介
MySQL是一个小型关系数据库管理系统,与其他大型数据库管理系统(如Oracle、DB2、SQL Server)等相比,MySQL的规模小、功能有限。但是由于MySQL的体积小、速度快、成本低,且提供的功能对稍微复杂的应用来说已经够用,因此使得MySQL成为世界上最受欢迎的开放源代码数据库。本节将介绍MySQL的特点。
1.3.1 客户机-服务器软件
主从式架构(Client-Server Model)或客户端/服务器(Client/Server)结构简称C/S结构,它是一种网络架构,通常在该网络架构下,软件分为客户端(Client)和服务器(Server)两部分。
服务器是整个应用系统资源的存储与管理中心,多个客户端则各自处理相应的功能,共同实现完整的应用。在客户/服务器结构中,客户端用户的请求被传送到数据库服务器,数据库服务器进行处理后,将结果返回给用户,从而减少了网络数据传输量。
用户使用应用程序时,首先启动客户端通过有关命令告知服务器进行连接以完成各种操作,而服务器则按照此请示提供相应的服务。每一个客户端软件的实例都可以向一个服务器或应用程序服务器发出请求。
这种系统的特点就是,客户端和服务器程序不在同一台计算机上运行,它们归属于不同的计算机。
主从式架构通过不同的途径应用于很多不同类型的应用程序,比如,现在人们最熟悉的在因特网(Internet)上使用的网页。例如,当顾客想要在当当网站上买书的时候,电脑和网页浏览器就被当作一个客户端,同时,组成当当网的电脑、数据库和应用程序就被当作服务器。当顾客的网页浏览器向当当网请求搜寻某种图书时,当当网服务器就从当当网的数据库中找出所有该类型的图书信息,结合成一个网页,再发送回顾客的浏览器。服务器端一般使用高性能的计算机,并配合使用不同类型的数据库,比如Oracle、Sybase、MySQL等;客户端需要安装专门的软件,比如浏览器。
1.3.2 MySQL的版本
针对不同用户,MySQL分为两个不同的版本:
● MySQL Community Server(社区版):该版本完全免费,但是官方不提供技术支持。
● MySQL Enterprise Server(企业版服务器):它能够以很高的性价比为企业提供数据仓库应用,支持满足ACID属性的事务处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话技术支持。
提示 MySQL Cluster主要用于架设集群服务器,需要在社区版或企业版的基础上使用。
MySQL的命名机制由3个数字组成,例如,mysql-5.6.10。
(1)第1个数字(5)是主版本号,描述了文件格式,所有版本为5的发行版都有相同的文件格式。
(2)第2个数字(6)是发行级别,主版本号和发行级别组合在一起便构成了发行序列号。
(3)第3个数字(10)是此发行系列中的版本号,随每次新分发版本递增。
在MySQL的开发过程中,同时存在多个发布系列,每个发布处在成熟度的不同阶段。
(1)MySQL 5.6是最新开发的稳定(GA)发布系列,是将执行新功能的系列,目前已经可以正常使用。
(2)MySQL 5.5是比较稳定(GA)发布系列。只是针对漏洞修复后重新发布,没有增加会影响稳定性的新功能。
(3)MySQL 5.1是前一稳定(产品质量)发布系列。只是针对严重漏洞修复和安全修复后重新发布,没有增加会影响该系列的重要功能。
提示 对于MySQL 4.1、4.0和3.23等低于5.0的老版本,官方将不再提供支持。而所有发布的MySQL(Current Generally Available Release)版本已经经过严格标准的测试,可以保证其安全可靠地使用。针对不同的操作系统,读者可以在MySQL的官方下载页面(http://dev.mysql.com/downloads/)下载到相应的安装文件。
1.3.3 MySQL的优势
MySQL的主要优势如下。
(1)速度:运行速度快。
(2)价格:MySQL对大多数个人用户来说是免费的。
(3)容易使用:与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习。
(4)可移植性:能够工作在众多不同的系统平台上,例如,Windows、Linux、Unix、MacOS等。
(5)丰富的接口:提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等语言的API。
(6)支持查询语言:MySQL可以利用标准的SQL语法和支持ODBC的应用程序。
(7)安全性和连接性:具有十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。并且由于MySQL是网络化的,因此可以在连接因特网的任何地方访问,从而提高了数据共享的效率。
1.3.4 MySQL 5.6的新功能
和MySQL 5.5相比,MySQL 5.6的新功能主要包括以下几个方面。
(1)子查询优化:通过优化子查询,可以提高执行效率,主要表现在查询的结果集合、分类和返回的执行次数上。
(2)强化Optimizer Diagnostics(优化诊断)功能:运用EXPLAIN执行INSERT、UPDATE和DELETE,EXPLAIN以JSON格式输出,提供更精确的最佳化指标和绝佳的可读性。Optimizer Traces(优化追踪)功能还可以追踪最佳化决策过程。
(3)通过强化InnoDB存储引擎,提升效能处理量和应用软件的可用性:提升处理和只读量高达230%,InnoDB重构得以尽量减少传统线程、冲洗和净化互斥的冲突和瓶颈,在高负载的OLTP系统展现更优异的数据同步性,显著提升只读和交易工作负载的处理量。
(4)大幅提升可用性:数据库管理员运用在线数据定义语言作业,可执行新增索引和窗体变更功能,并同时更新应用程序。
(5)新增Index Condition Pushdown(ICP,索引条件下推)和Batch Key Access(BKA,批键访问)功能:提升特定查询量高达280倍。
(6)InnoDB全文检索功能:开发人员可以在InnoDB窗体上建立全文索引功能,以呈现文字搜寻结果,加快搜寻单字和语句。
(7)自我修复复制丛集:新增的Global Transaction Identifiers and Utilities(全局事务识别与应用)可以简化自动侦测和复原功能。当数据库发生毁损时,数据库管理员无须介入,即可运用Crash-Safe Replication功能,自动将二进制记录和备份数据恢复至正确位置。Checksums可通过自动侦测和警示错误的功能,跨丛集保持数据的完整性。
(8)高效能复制丛集:通过Multi-Threaded Slaves(多线程从库),Binlog Group Commit(二进制日志文件成组提交)和Optimized Row-Based Replication(优化的基于行的复制)可以将复制能力提高5倍之多。用户向外扩充其跨商品系统的工作负载时,可以大幅提升复制的效能和效率。
(9)时间延迟复制:可以防止主计算机的作业失误,例如意外删除窗体。
(10)强化的PERFORMANCE_SCHEMA:协助用户得以监控使用最多资源的密集查询指令、对象、用户和应用程序,并可将查询、用户、主机和对象的统计数据汇整成新的摘要页面。新增功能可以使预设配置更加简易,而且耗费不到5%的成本。
(11)MySQL 5.6纳入的新功能包含精确空间操作的地理信息系统(Geographic Information System)、强化的IPv6设备以及最佳化的服务器默认值。