什么是MySQL
共同编辑,修正错误,这里点击进去 mysql
MySQL(官方发音为英语发音:/maɪ ˌɛskjuːˈɛl/
My S-Q-L
,但也常常读做英语发音:/maɪ ˈsiːkwəl/
My Sequel
)本来是一个开放源代码的关系数据库管理系统(DBMS),原开发者为瑞典的MySQL AB
公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。git
MySQL 介绍
MySQL在过去因为性能高、成本低、可靠性好,已经成为最流行的开源数据库,所以被普遍地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,好比维基百科、Google和Facebook等网站。程序员
但被甲骨文公司收购后,Oracle大幅调涨MySQL商业版的售价,且甲骨文公司再也不支持另外一个自由软件项目OpenSolaris的发展,所以致使自由软件社区们对于Oracle是否还会持续支持MySQL社区版(MySQL之中惟一的免费版本)有所隐忧,所以原先一些使用MySQL的开源软件逐渐转向其它的数据库。例如维基百科已于2013年正式宣布将从MySQL迁移到MariaDB
数据库。MySQL的创始人麦克尔·维德纽斯以MySQL为基础,成立分支计划MariaDB。github
MySQL 发展历史
不少人觉得MySQL是最近15年内才出现的数据库,其实MySQL数据库的历史能够追溯到1979年,那时 Bill Gates 退学没多久,微软公司也才刚刚起步,而Larry的Oracle公司也才成立不久。那时有一个天才程序员 Monty Widenius 用 BASIC 设计了一个报表工具,过了不久,又将此工具使用 C 语言重写,一直到 UNIX 平台,当时只是一个底层的面向报表存储引擎名叫Unireg。算法
- 1985 年,瑞典的几位志同道合小伙子(David Axmark、Allan Larsson 和Monty Widenius) 成立了一家公司,这就是MySQL AB 的前身。
- 1990年,TcX公司的客户中开始有人要求为他的API提供SQL支持。当时有人提议直接使用商用数据库,可是Monty以为商用数据库的速度难以使人满意。因而,他直接借助于mSQL的代码,将它集成到本身的存储引擎中。使人失望的是,效果并不太使人满意,因而,Monty雄心大起,决心本身重写一个SQL支持。
- 1996年,MySQL 1.0发布,它只面向一小拨人,至关于内部发布。
- 1996年10月,MySQL 3.11.1发布(MySQL没有2.x版本),最开始只提供Solaris下的二进制版本。一个月后,Linux版本出现了。
- 1999~2000年,MySQL AB公司在瑞典成立。Monty雇了几我的与Sleepycat合做,开发出了Berkeley DB引擎, 由于BDB支持事务处理,因此MySQL今后开始支持事务处理了。
- 2003年12月,MySQL 5.0版本发布,提供了视图、存储过程等功能。
- 2008年1月16日,Sun(太阳微系统)正式收购MySQL。
- 2009年4月20日,甲骨文公司宣布以每股9.50美圆,74亿美圆的总额收购Sun电脑公司。
- 2010年12月,MySQL 5.5发布,其主要新特性包括半同步的复制及对SIGNAL/RESIGNAL的异常处理功能的支持,最重要的是InnoDB存储引擎终于变为当前MySQL的默认存储引擎。
- 2013年6月18日,甲骨文公司修改MySQL受权协议,移除了GPL。但随后有消息称这是一个bug。
MySQL 版本
MySQL
针对不一样的用户,分了社区版
和企业服务器版
,还提供一些其它版本,是属于MySQL
相关工具。sql
- MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
- MySQL Enterprise Edition 企业版本,需付费,能够试用30天。
- MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
- MySQL Cluster CGE 高级集群版,需付费。
- MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建模工具。
MySQL Workbench是著名的数据库设计工具DBDesigner4的继任者。MySQL Workbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)。数据库
MySQL 版本命命机制由三个数字组成,例如mysql-5.6.33-osx10.11-x86_64.tar.gz
服务器
- 第一个数字(5)主版本号:当你作了不兼容的 API 修改,
- 第二个数字(7)次版本号:当你作了向下兼容的功能性新增,合计,主要和次要的数字构成发布系列号。该系列号描述了稳定的特征集。
- 第三个数字(1)修订号:当你作了向下兼容的问题修正。这是一个新的bugfix释放增长。在大多数状况下,在一系列最新版本是最好的选择。
Github 上面有语义化版本标准, 开源仓库mojombo/semver,上面的版本命名大体是跟语义化版本标准差很少,你能够看语义化版本标准来学习版本名机制。经过语义化版本标准来理解MySQL 版本命命机制。网络
MySQL 的优点
- 使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
- 支持AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell NetWare、NetBSD、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操做系统。
- 为多种編程语言提供了API。这些編程语言包括C、C++、C#、VB.NET、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
- 支持多线程,充分利用CPU资源,支持多用户。
- 優化的SQL查询算法,有效地提升查询速度。
- 既可以做为一个单独的应用程序在客户端服务器网络环境中运行,也可以做为一个程序库而嵌入到其余的软件中。
- 提供多语言支持,常见的编码如中文的GB 23十二、BIG5,日文的Shift JIS等均可以用做數據表名和數據列名。
- 提供TCP/IP、ODBC和JDBC等多种数据库链接途径。
- 提供用于管理、检查、優化数据库操做的管理工具。
- 能够处理拥有上千万条记录的大型数据库。