mysql是一种dbms,即它是一种数据库软件。
mysql是一种开放源代码的关系型数据库管理系统(rdbms),mysql数据库系统使用最常用的数据库管理语言(sql)进行数据库管理
my是mysql的联合创始人 - monty widenius 的女儿的名字。mysql是my和sql的组合,这就是mysql命名的由来
在本教程中,会让大家快速掌握 mysql 的基本知识,并轻松使用 mysql 数据库。
mysql简史
- 1995年,michael monty widenius、david axmark和 allan larsson,在瑞典创立了mysql ab公司。1996年,发布mysql 1.0版本,“my”取自联合创始人micheal monty widenius女儿的名字。同年10月,mysql 3.11.1发布,没有2.x版本。
- 2000年,mysql对原存储引擎进行了整理,命名为myisam
- 2001年,mysql集成heikki tuuri的存储引擎innodb,实现了事务处理和行级锁的支持。该年发布的3.23 版本已支持大多数的基本的sql 操作,并集成了myisam和innodb 存储引擎。
- 2003年3月,发布mysql 4.0 ,支持查询缓存、集合并、全文索引,正式支持innodb存储引擎。
- 2004年10月,发布经典的mysql 4.1 ,增加了子查询,utf8字符集等。
- 2005年10月,发布mysql 5.0 ,增加了视图、存储过程、游标、触发器、分布式事务,迈出了高性能数据库步伐。
- 2008年1月,mysql ab公司被sun公司以10亿美金收购。
- 2009年4月,oracle公司以74亿美元收购sun公司,mysql转入oracle麾下。
- 2010年12月,发布mysql 5.5 ,增加了半同步复制、信号异常处理、unicode字符集,innodb成为默认存储引擎。
- 2011年4月,发布mysql 5.6 ,增加了gtid复制,支持延时复制、行级复制。
- 2013年2月,发布mysql 5.7 ,支持原生json数据类型。
- 2016年9月,发布mysql 8.0.0 ,速度要比 mysql 5.7 快 2 倍;可使用json数据的sql机制;支持gis;可靠性更高。
- 2018年4月,发布mysql 8.0.11 ga ,支持nosql文档存储、原子的奔溃安全ddl语句、扩展json语法,新增json表函数,改进排序、分区更新功能。
mysql的主要特点
mysql采用c和c 编写,开源多线程,是完整的关系数据库管理系统(rdbms),主要特点如下:
- 标准sql:支持完整的sql标准化语言。
- 易用性:使用简单,内嵌数据库管理客户端,具有交互性。
- 安全性:具有可靠的数据安全层,可为数据提供高效的加密。
- 可伸缩性:可处理大量数据而不卡顿--多达5000万行。可以处理高达8tb的数据。
- 跨平台性:兼容几乎所有操作系统,如unix,windows,linux,mac os x等。
- 灵活高效、高性能:提供更快速、高度可靠且廉价的存储ag真人游戏的解决方案,支持大量嵌入式应用程序。
- 双重许可:用户可以选择gnu许可作为开源软件使用,也可以购买有oracle许可证的商业软件。
mysql系统架构
mysql由sql接口,解析器,优化器,缓存,存储引擎组成,系统架构图如下:
主流的数据库存储引擎
-
myisam是mysql 5.5版之前的默认数据库引擎,虽然性能极佳,但却有一个缺点:不支持事务处理。随着另一种数据库引擎innodb的导入,myisam被逐渐取代。
-
innodb是mysql目前最流行的数据库引擎,与myisam相比,innodb的最大特色就是支持了acid兼容的事务功能。
-
tokudb是一种采用压缩算法的存储引擎,大量测试表明,数据表从 innodb 存储引擎转到 tokudb 存储引擎后,数据量可以减少 80% 到 90%,即 1t 的数据量能压缩到 200g以下。除了数据压缩外,tokudb 存储引擎还支持事务和在线 ddl 操作,可以很好兼容 myisam 或 innodb 存储引擎上的应用。缺点是无法支持外键 foreign key,不适用于频繁大量读取的场景。