菜鸟笔记
提升您的技术认知

MySQL 教程

阅读 : 7490

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等。
  • 灵活高效、高性能:提供更快速、高度可靠且廉价的存储解决方案,支持大量嵌入式应用程序。
  • 双重许可:用户可以选择GNU许可作为开源软件使用,也可以购买有Oracle许可证的商业软件。

MySQL系统架构

Mysql由SQL接口,解析器,优化器,缓存,存储引擎组成,系统架构图如下:

MySQL系统架构

主流的数据库存储引擎

  • MyISAM是MySQL 5.5版之前的默认数据库引擎,虽然性能极佳,但却有一个缺点:不支持事务处理。随着另一种数据库引擎InnoDB的导入,MyISAM被逐渐取代。

  • InnoDB是MySQL目前最流行的数据库引擎,与MyISAM相比,InnoDB的最大特色就是支持了ACID兼容的事务功能。

  • TokuDB是一种采用压缩算法的存储引擎,大量测试表明,数据表从 InnoDB 存储引擎转到 TokuDB 存储引擎后,数据量可以减少 80% 到 90%,即 1T 的数据量能压缩到 200G以下。除了数据压缩外,TokuDB 存储引擎还支持事务和在线 DDL 操作,可以很好兼容 MyISAM 或 InnoDB 存储引擎上的应用。缺点是无法支持外键 Foreign Key,不适用于频繁大量读取的场景。