MySql的逻辑架构

Mysql在互联网企业中应用很是普遍,互联网企业的特色访问量很是大,怎么样优化mysql就成了摆在咱们面前的一道难题。mysql

咱们从mysql的逻辑架构提及:sql

image.png

最上面一层是客户端的链接服务,主要完成客户端的链接处理,受权认证。在该层有一个线程池,每个链接从线程池中获取线程,省去了建立和销毁线程的开销。数据库

中间这一层能够完成查询解析,分析,优化,缓存。存储过程,触发器,视图也是在这一层。缓存

最下面一层是存储引擎,负责mysql中数据的存储和提取。架构

 

和其它数据库有所不一样,mysql的存储引擎是可插拔的,能够根据不一样的场合使用不一样的存储引擎。ide

 

存储引擎:优化

存储引擎就是存储数据,更新查询数据,创建索引等等的技术实现方式,mysql5.0支持的存储引擎包括: InnoDB MyISAM BDBMEMORYMERGEEXAMPLENDB ClusterARCHIVECSVBLACKHOLEFEDERATED,其中使用最多的是InnoDB MyISAMmysql5.5以后InnoDB是默认的存储引擎咱们重点讨论这两个存储引擎spa

 

查看mysql默认存储引擎的命令:线程

show variables like '%storage_engine%'索引

 

InnoDB存储引擎和MyISAM的对比图:

image.png

InnoDB存储引擎和MyISAM存储引擎的最大区别有如下三点:

1.     InnoDB支持事物,MyISAM不支持

2.     InnoDB支持外键,MyISAM不支持

3.     批量插入的速度MyISAM要高于InnoDB

基于以上特色来看看在实际使用中应该如何选择存储引擎:

InnoDB存储引擎:由于InnoDB存储引擎支持事物,因此对于要求事物完整性的场合须要选择InnoDB,好比数据操做除了插入和查询之外还包含有不少更新删除操做,像财务系统等对数据准确性要求较高的系统。

MyISAM存储引擎:若是系统是以读操做和插入操做为主,只有不多的更新删除操做,而且对事物的之处没有要求那么能够选择这个存储引擎。

相关文章
相关标签/搜索