前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 概述

MySQL 概述

作者头像
技能锦囊
发布2020-04-14 17:46:08
5930
发布2020-04-14 17:46:08
举报
文章被收录于专栏:MySQL 笔记
什么是MySQL?

MySQL 是一款开源的 [ 关系型数据库软件系统 , RDBMS ] ,在GPL(General Public License) 的许可下根据需求可自定义源码。

虽说Oracle 为商业数据库的无冕之王,但随着阿里、网易、雅虎等大型互联网企业的推动,目前MySQL已经成为当今最流行的开源数据库,并一步步开始占领原有商业数据库的市场...

数据库排名[1] https://db-engines.com/en/ranking

MySQL发展历史

最初为AB公司的产品,Mysql5.0及之前的版本均由AB公司管理,

在2008年的时候AB公司被 Sun 公司收购,Mysql也就归属到了 Sun公司 下;

没多久,Sun公司就被Oracle公司收购了,此期间诞生了一个Sun向Oracle的过渡版本,Mysql 5.5 版本;

直到 Mysql 5.6 就彻底归属于Oracle公司旗下了,从Oracle收购Mysql以来,Mysql发展的速度及新的功能越来越强大,逐步向Oracle靠拢,如:表空间、redo、undo分离、隐藏索引等;

2019年,Mysql8.0.15已经GA(官方发布稳定版本), 可以看到在Oracle公司下的Mysql是发育比较好的


MySQL的工作原理

工作原理

存储引擎

MySQL 数据库的存储引擎是插件式的,在创建数据表的时候可以根据需求选用合适的引擎,因为InnoDB引擎各方面功能更完善,优秀,所以默认存储引擎为InnoDB,下面介绍常见的存储引擎。

MyISAM

•是MySQL 5.5之前的默认数据库引擎•性能极佳,而且提供了大量的特性•包括全文索引、压缩、空间函数等•MyISAM不支持事务和行级锁•缺陷是崩溃后数据无法安全恢复

InnoDB

•MySQL 5.5版本后使用 InnoDB(事务性数据库引擎)为默认数据库引擎;用于MySQL的事务安全(ACID支持)存储引擎;•具有提交,回滚和崩溃恢复的功能以保护用户数据;•支持事务处理,外部键(foreign key),行级锁 等高级数据库功能;

MyISAM 与 InnoDB 区别
代码语言:javascript
复制
1. 是否支持行级锁 : MyISAM 只有表级锁,
  而InnoDB 支持行级锁和表级锁,默认为行级锁。

2. InnoDB支持事务和崩溃后的安全恢复,MyISAM不支持;

3. MyISAM 强调的是性能,每次查询具有原子性,其执行比InnoDB类型更快
  InnoDB 提供事务支持行锁,外部键等高级数据库功能。
  具有事务、回滚和崩溃修复能力的事务安全型表。

4. 是否支持外键:MyISAM不支持,而InnoDB支持
......
什么是事务?

事务是逻辑上的 一组操作(一条或多条SQL命令); 要么都执行,要么都不执行。

事务最经典的例子: 假如小明要给小红转账100元,这个转账会涉及到两个关键操作就是:将小明的余额减少100元,将小红的余额增加100元。在这两个操作之间突然出现银行系统崩溃等错误,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。

事务的 [ ACID ] 原则

原子性(Atomicity):

事务是最小的执行单位,不允许分割。事务的原子性确保执行操作要么全部完成,要么失败还原(回滚);

一致性(Consistency):

执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的;

隔离性(Isolation):

并发访问数据库时,一个用户的事务不被其他事务所干扰(串行化),各并发事务之间数据库是独立的;

持久性(Durability):

一个事务被提交之后。它对数据库中数据的改变是持久的(数据存盘),即使数据库发生故障也不应该对其有任何影响。

References

[1] 数据库排名: https://db-engines.com/en/ranking

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 技能锦囊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是MySQL?
  • MySQL发展历史
  • MySQL的工作原理
  • 存储引擎
  • MyISAM 与 InnoDB 区别
  • 什么是事务?
  • 事务的 [ ACID ] 原则
  • References
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档