MySQL的介绍
目录
一、MySQL Server 简介
什么是MySQL
MySQL 是由MySQL AB 公司(目前已经被SUN 公司收归麾下)自主研发的,目前IT 行业 最流行的开放源代码的数据库管理系统之一,它同时也是一个支持多线程高并发多用户的关系型数据库管理系统。 MySQL 数据库以其简单高效可靠的特点,在最近短短几年的时间就从一个名不见经传的数据库系统,变成一个在IT 行业几乎是无人不知的开源数据库管理系统。从小型的web 网站,至大型的企业级应用,到处都可见其身影的存在。
MySQL 与其他数据库的简单比较
1)功能比较:
作为一个成熟的数据库管理系统,要满足各种各样的商业需求,功能肯定是重点参考对象的。MySQL经过多年的改进和完善之后,已经基本具备了所有通用数据库管理系统所需要的相关功能。 MySQL 基本实现了ANSI SQL 92 的大部分标准,仅有少部分并不经常被使用的部分没有实现。比如在字段类型支持方面,另一个著名的开源数据库PostGreSQL 支持的类型是最完整的,而Oracle 和其他一些商业数据库,比如DB2、Sybase 等,较MySQL 来说也要相对少一些。在事务支持方面,虽然MySQL 自己的存储引擎并没有提供,但是已经通过第三方插件式存储引擎Innodb 实现了SQL 92 标准所定义的四个事务隔离级别的全部。 不过在可编程支持方面,MySQL 和其他数据库相比还有一定的差距,虽然最新版的MySQL已经开始提供一些简单的可编程支持,如开始支持Procedure,Function,Trigger 等,但是所支持的功能还比较有限,和其他几大商用数据库管理系统相比,还存在较大的不足。如 Oracle 有强大的PL/SQL,SQL Server 有T-SQL,PostGreSQL 也有功能很完善的PL/PGSQL 的支持。 整体来说, MySQL的功能完全可以满足我们的通用商业需求,提供足够强大的服务。而且不管是哪一种数据库在功能方面都不敢声称自己比其他任何一款商用通用数据库管理系统都强,甚至都不敢声称能够自己拥有某一数据库产品的所有功能。因为每一款数据库管理系统都有起自身的优势,也有起自身的限制,这只能代表每一款产品所倾向的方向不一样。
2)易用性比较:
从系统易用性方面来比较, 每一个使用过MySQL 的用户都能够明显地感觉出MySQL 在这方面与其他通用数据库管理系统之间的优势所在。尤其是相对于一些大型的商业数据库管理系统如Oracle、DB2 以及Sybase 来说,对于普通用户来说,操作的难易程度明显不处于一 个级别。MySQL 一直都奉行简单易用的原则,也正是靠这一特性,吸引了大量的初级数据库用户最终选择了MySQL。
从安装方面来说, MySQL 安装包大小仅仅只有100MB 左右,这与几大商业数据库完全不在一个数量级。安装难易程度也要比Oracle 等商业数据库简单很多,不论是通过已经编译好的二进制分发包还是源码编译安装,都非常简单。
从数据库创建来比较, MySQL 仅仅只需要一个简单的CREATE DATABASE 命令,即可在瞬间完成建库的动作,而Oracle 数据库与之相比,创建一个数据库简直就是一个非常庞大的工程。当然,二者数据库的概念存在一定差别。
3)性能比较
性能方面,一直是MySQL 引以为自豪的一个特点。在权威的第三方评测机构多次测试较量各种数据库TPCC 值的过程中,MySQL 一直都有非常优异的表现,而且在其他所有商用的通用数据库管理系统中,仅仅只有Oracle 数据库能够与其一较高下。
4)可靠性
关于可靠性的比较,MySQL 也有非常优异的表现,从当前最火的Facebook 这样大型的网站都是使用MySQL 数据库,就可以看出,MySQL 在稳定可靠性方面,而且排在全球前10 位的大型网站里面,大部分都有部分业务是运行在MySQL数据库环境上,如Yahoo,Google 等。
总的来说,MySQL 数据库在发展过程中一直有自己的三个原则:简单、高效、可靠。
MySQL 的主要适用场景
MySQL是目前最为流行的开源数据库管理系统软件了。那么MySQL 主要用于什么场景下
1)Web 网站系统
Web 站点,是MySQL 最大的客户群,MySQL 之所以能成为Web 站点开发者们最青睐的数据库管理系统,是因为MySQL 数据库的安装配置都非常简单,使用过程中的维护也不像很多大型商业数据库管理系统那么复杂,而且性能出色。还有一个非常重要的原因就是MySQL 是开放源代码的,完全可以免费使用。
2)日志记录系统
MySQL 数据库的插入和查询性能都非常的高效,如果设计地较好,在使用MyISAM 存储引擎的时候,两者可以做到互不锁定,达到很高的并发性能。所以,对需要大量的插入和查询日志记录的系统来说,MySQL 是非常不错的选择。比如处理用户的登录日志,操作日志等是非常适合的应用场景。
3)数据仓库系统
随着现在数据仓库数据量的飞速增长,我们需要的存储空间越来越大。数据量的不断增长,使数据的统计分析变得越来越低效,也越来越困难。怎么办?这里有几个主要的解决思路,
- 一个是采用昂贵的高性能主机以提高计算性能,用高端存储设备提高I/O 性能,效果理想,但是成本非常高;
- 第二个就是通过将数据复制到多台使用大容量硬盘的廉价pc server上,以提高整体计算性能和I/O 能力,效果尚可,存储空间有一定限制,成本低廉;
- 第三个,通过将数据水平拆分,使用多台廉价的pc server 和本地磁盘来存放数据,每台机器上面都只有所有数据的一部分,解决了数据量的问题,所有pc server 一起并行计算,也解决了计算能力问题,通过中间代理程序调配各台机器的运算任务,既可以解决计算性能问题又可以解决I/O 性能问题,成本也很低廉。
在上面的三个方案中,第二和第三个的实现,MySQL 都有较大的优势。通过MySQL 的简单复制功能,可以很好的将数据从一台主机复制到另外一台,
不仅仅在局域网内可以复制,在广域网同样可以。当然,其他的数据库同样也可以做到,不是只有MySQL 有这样的功能。但是MySQL是免费的,其他数据库大多都是按照主机数量或者cpu 数量来收费,当我们使用大量的pc server 的时候,license 费用相当惊人。第一个方案,基本上所有数据库系统都能够实现,但是其高昂的成本并不是每一个公司都能够承担的。