您的位置:首页 > 数据库 > MySQL

MySQL的定位于存储引擎分析

2018-01-04 00:00 501 查看
摘要: MySQL是目前世界上最流行的开源关系型数据库,是轻量级的,大量运用于互联网行业,比如百度、腾讯、阿里巴巴、京东、网易都在大量使用MySQL,可以说支撑互联网公司正常运转的主要数据库就是MySQL。

1、什么是Mysql?

MySQL是目前世界上最流行的开源关系型数据库,是轻量级的,大量运用于互联网行业,比如百度、腾讯、阿里巴巴、京东、网易都在大量使用MySQL,可以说支撑互联网公司正常运转的主要数据库就是MySQL。

2、MySQL 的定位?

MySQL定位为中小型数据库,更适合做OLTP(联机事物处理)业务,不适合OLAP(联机分析处理)业务,不适合做海量数据的分析功能,而且当MySQL单机存储数据达到TB级的时候,性能会明显下降。

但是目前MySQL依然是中小型公司最佳的选择,主要是因为如下原因:

a:MySQL成本低,稳定性高

b:有成熟的实践方案,有足够多的解决问题现有处理方式,这样技术风险会大大降低。

3、为什么互联网公司普遍使用MySQL?

互联网公司日常运营产生的数据都是非常庞大的,面对大数据的硬性需求,数据库的选择自然是极其重要的,一般第一直觉会选择Oracle,毕竟它是商业数据库中的首选,但是选择Oracle依然存在诸多问题,首先它是商业性产品是收费的而且价值不菲,其次它是重量级的,扩展复杂,一旦数据库底层出现问题没办法第一时间进行处理修复,并且互联网公司自然也是高科技人才聚集的地方,拥有非常强劲的研发能力,自然使用Oracle这种事不被推荐的。

MySQL虽然是中小型数据库,但是它原生提供了很好的扩展功能,通过配合成熟的架构,比如在应用层切分数据,这样很多数据能够分片到各个MySQL节点中,这样就实现了MySQL存储海量数据的需求。

这种架构不仅开源免费而且可控性比较高,自己掌握自己的命运,也是符合去IOE的发展趋势的,如何做出优秀的架构,就成了很多互联网公司研究的重点,也是他们的安身立命只所在。

4、MySQL 的基础架构是怎样的?

经过十几年的发展,关系型数据库的理论和实践已经发展的很成熟,数据库产品的架构一般分为三个层次:应用层,逻辑层,物理层,MySQL也是如此。

应用层:负责与客户端、用户进行交互,建立连接记住连接状态,转发请求至逻辑层,最后响应它们的请求,返回数据信息。

逻辑层:负责执行具体的业务请求,比如查询处理(不限于此),查询处理器负责查询的解析和执行。当接收到查询请求时,数据库会分配一个线程来处理它,先有查询处理器(优化器)生成执行计划,然后交由计划执行器来执行,最终调用物理层的API进行数据处理。

&nb
3ff0
sp; 物理层:实际存储在物理磁盘上的数据库文件。

5、MySQL的存储引擎

MySQL的存储引擎是“可插拔”的,意思就是说 MySQL Server的核心代码和春初引擎是分离的,我们可以选择使用最适合自己业务场景的引擎,而且MySQL支持不同的表使用不同的引擎,MySQL有20多个数据库引擎。

经常被使用到的存储引擎有:InnoDB、MyISAM、MEMORY、ARCHIVE等。

在同一种业务场景下衡量一个存储引擎主要通过三个标准:是否支持事物、锁级别(表级锁/行级锁)、是否支持热备份。

InnoDB 是 Mysql5.5版本以后默认的存储引擎,5.5版本之前的5.0、5.1版本是使用的MyISAM作为默认引擎,MySQL没有推出过5.2、5.3、5.4版本。

MySQL官方的重点已不在MyISAM上,虽然MyISAM存在很多缺陷,但一直没有重大改进,如不支持事物、灾难恢复性差、不支持行级锁等,所以还在使用5.0、5.1的务必赶紧升级至最新版本。

InnoDB存储引擎支持外键、支持事物、支持行级锁、支持热备份(灾难恢复性更好)。

MEMORY存储引擎提供“内存表”,不支持事物、外键,但是可以显著提高数据访问速度,由于内存资源成本昂贵,一般存储数据量有限,而且数据容易丢失,不建议在生产环境中大范围使用。

ARCHIVE是专门用来存储流水数据的引擎,它只支持INSERT、SELECT。查询速度非常快。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL