美文网首页
A.001.1.Mysql介绍

A.001.1.Mysql介绍

作者: 执一不失 | 来源:发表于2021-01-09 11:00 被阅读0次

    1.mysql介绍

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。



    MySQL 使用的 SQL 语言是用于访问数据库的最常用的标准化语言。

    由于 MySQL 数据库体积小、速度快、总体拥有成本低、开放源代码,其有着广泛的应用,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,因此搭配 PHP 和 Apache 服务器可组成良好的开发环境。

    2.系统特性

    • 使用 C 和 C++ 编写,并使用多种编译器进行测试,保证源代码的可移植性。
    • 支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows 等多种操作系统。
    • 为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
    • 支持多线程,充分利用 CPU 资源。
    • 优化的 SQL 查询算法,有效地提高查询速度。
    • 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入其他的软件中。
    • 提供多语言支持
    • 提供 TCP/IP、ODBC 和 JDBC 等多种数据库连接途径。
    • 提供用于管理、检查、优化数据库操作的管理工具。
    • 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
    • 支持多种存储引擎。

    3.发展历程

    1979年,那时Oracle也才小打小闹,微软的SQL Server影子都没有。Monty Widenius在其合伙的TcX小公司工作时,用BASIC设计了一个报表工具,可以在4M主频和16KB内在的计算机上运行。随着时间的推移,这个小工具被用C重写并迁移到Unix上运行。当时,它只是一个很底层的面向报表的存储引擎,再配上一个报表前端。它就是大家知道的Unireg。

    1990年,该公司的客户急切要求访问其数据的SQL接口,TcX提出其中一方案是把数据都加载进一个商用数据库。但Monty对这个方案的执行速度并不满意。他尝试将mSQL的代码用做SQL层,并用自己的低层级的存储引擎集成进来,但效果也不好。于是, Monty决心自己重写一个SQL。

    1996年,MySQL 1.0发布,只面向一小拨人。同年10月,MySQL 3.11.1发布,只提供了Solaris下的二进制版本。一个月后,Linux二进制包也发布。 此时的MySQL还非常简陋,除了在一个表上做一些Insert,Update,Delete和Select 操作,没有其他更多的功能。接下来的两年里,MySQL依次移植到各个平台下。它发布时,采用的许可策略,有些与众不同:允许免费商用,但是不能将MySQL与自己的产品绑定在一起发布。如果想一起发布,就必须使用特殊许可,意味着要花银子。

    MySQL3.22应该是一个标志性的版本,提供了基本的SQL支持。还带有一个复杂的优化器,新版本速度很快,且非常稳定。尽管如此,它还是不支持事务、子查询、外键、存储过程和视图,只存在表级别的锁。

    1999-2000,一个名叫MySQL AB的独立公司成立了(Monty Widenius也作为创始人之一),它聘请了几位开发者并与Sleepycat公司建立合作伙伴关系,提供访问[Berkeley DB]http://zh.wikipedia.org/wiki/Berkeley_DB)数据文件的SQL接口。自从Berkeley DB具备事务功能之后,它就赋于了MySQL支持事务的特质,补上了它的短板。在为集成的Berkeley DB做了一些修改之后,MySQL 3.23发布了。

    2000 年,MySQL 公布了自己的源代码,并采用GPL(GNU General Public License)许可协议,正式进入开源世界。

    2000年4月,有了Slashdot的支持与赞助,master/slave机制加入。不支持事务的老存储引擎ISAM被重写了,并以MyISAM的形式发布。经过大量的改良,当前版本也支持了全文搜索。MySQL AB还曾有一个跟NuShpere短期的合作,在MySQL中加入了一个支持行级锁和事务的引擎Gemini,但因法律问题于2001年结束了。也就在这时,Heikki Tuuri提议用自己的引擎集成到其中,并接手MySQL AB的工作,这个引擎就是同样支持行级锁和事务的InnoDB。

    2003年3月,MySQL 4.0正式发布。新增特性:除了MySQL/InnoDB组合,还有查询缓存(Query Cache),优化器的改良,客户端/服务器间的协议用SSL加密。

    2004年10月MySQL 4.1发布,2005年10月发布里程碑的一个版本 5.0。4.1版本新增子查询,空间索引支持也加到了MyISAM引擎中。Unicode支持也被实现了。客户端/服务器协议也有了大量的改动,而且支持预处理语句(prepared statement)。5.0版本加入了存储过程,服务器端游标,触发器,视图,分布式事务(Xa transactions),查询优化器的显著改进以及其它的一些特性。MySQL的开发者发现如果要让4.1 稳定下就要花很大的工夫,如果他们要把4.1的新特性都加进去,就必须先搞定存储过程,所以他们痛下决心另创了一个分枝来开发5.0。经一度因这个造成了一些混乱——两个分枝同时处在alpha 阶段,后来4.1稳定了,这个尴尬也就随之而解了。

    在5.0 之后的版本里,MySQL明确地表现出迈向高性能数据库的发展步伐。5.1版本紧随其后,其中加了好多的新的改进,如表分区(table data partitioning),基于行的复制(row-based replication),事件调度器(event schedular),和让新存储引擎和其它插件轻松集成的标准化插件API。
    .....
    2008年1月16号 Sun公司收购MySQL。

    2009年4月20,Oracle收购Sun公司。

    2010年04月22 发布MySQL 5.5, MySQLcluster 7.1。

    2013年2月,MySQL5.6发布。Oracle最近宣布将于2021年2月停止5.6版本的更新,结束其生命周期。

    2015年12月,MySQL5.7发布,其性能、新特性、性能分析带来了质的改变。

    2016年9月,MySQL开始了8.0版本,Oracle宣称该版本速度是5.7的两倍,性能更好。

    2018年4月,MySQL8.0.11发布。

    2021年1月09日MySQL已更新到8.0.22版本,但市场主流都还是使用的5.5/5.6/5.7版本,建议用5.7.xx。

    (官方下载路径:https://dev.mysql.com/downloads/mysql/

    4.市场应用

    • 中、大型互联网公司
    • 市场空间:互联网领域第一
    • 同源产品:MariaDB、perconaDB

    关注公众号,查阅数据库知识不迷路,公众号:数据库BOSS

    相关文章

      网友评论

          本文标题:A.001.1.Mysql介绍

          本文链接:https://www.haomeiwen.com/subject/ixxcaktx.html