mysql存储引擎性能比较
来源:互联网 发布:ubuntu php模块 编辑:程序博客网 时间:2024/04/30 06:53
前言
今天看到有人面滴滴被问到知不知道mysql的引擎然后说不会被直接告知面试结束,然后想想自己mysql引擎也只是知道那么一两个还说不全。就想说在这里做个总结。
。。。。。凌晨三点半了。
在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库。而在设计表的时候,我们都会关注一个问题,使用什么存储引擎。
什么是存储引擎?
关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式。有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差;而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的数据,数据的处理上也会存在着差异,那么。对于MySQL来说,它提供了很多种类型的存储引擎,我们可以根据对数据处理的需求,选择不同的存储引擎,从而最大限度的利用MySQL强大的功能。
MYSQL存储引擎:
在mysql客户端中,使用以下命令可以查看MySQL支持的引擎。
<span style="font-family:SimSun;">show engines</span>
引擎众多,主要介绍MyISAM和InnoDB。
可以看到InnoDB的注释:支持事务、行级锁定和外部键。
MyISAM则是 MyISAM存储引擎。
然后我针对不同引擎做了几个测试:
表的定义如下:
存储过程如下:
<span style="font-family:SimSun;">delimiter //create procedure myproc() begin declare num int; set num=1; while num < 10 do insert into t_tag(tag_name, tag_desc) values(concat("tag", num), concat("tag", num)); set num=num+1;end while; end//</span>
可以通过更改num的值去更新要插入的数据量。
首先是InnoDB的100W和10W的数据量:
10W(InnoDB)
10w(MyISAM)
100w(MyISAM)
10W数据量 INNODB设置autocommit=0;
通过一个数据量的一个简单比较:
可以简单发现:
10W数据量 innodb(autocommit=1时){默认状态} 耗时:5.13分钟
10W数据量 innodb(autocommit=0时)耗时:3.073秒
10W数据量 MySIAM 耗时:8.347秒
测试结果总结:
MyISAM表是独立于操作系统的,这说明可以轻松地将其从Windows服务器移植到Linux服务器;每当我们建立一个MyISAM引擎的表时,就会在本地磁盘上建立三个文件,文件名就是表名。例如,建立了一个MyISAM引擎的tb_Demo表,那么就会生成以下三个文件:
1.tb_demo.frm,存储表定义;
2.tb_demo.MYD,存储数据;
3.tb_demo.MYI,存储索引。
MyISAM表无法处理事务,这就意味着有事务处理需求的表,不能使用MyISAM存储引擎。MyISAM存储引擎特别适合在以下几种情况下使用:
1.选择密集型的表。MyISAM存储引擎在筛选大量数据时非常迅速,这是它最突出的优点。
2.插入密集型的表。MyISAM的并发插入特性允许同时选择和插入数据。例如:MyISAM存储引擎很适合管理邮件或Web服务器日志数据。
然后根据查找的资料做一个简单的总结:
MySIAM 特点:
最后:
2.如何选择合适的存储引擎?
(1)选择标准可以分为:
(2)是否需要支持事务;
(3)是否需要使用热备;
(4)崩溃恢复:能否接受崩溃;
(5)是否需要外键支持;
然后按照标准,选择对应的存储引擎即可。
一般来说,如果需要事务支持,并且有较高的并发读取频率,InnoDB(默认哦)是不错的选择。
任何一种表都不是万能的,只用恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势。
- mysql存储引擎性能比较
- mysql存储引擎比较
- MySQL存储引擎比较
- MySQL存储引擎比较
- MYSQL存储引擎比较
- MySQL存储引擎比较
- MySQL存储引擎比较
- mysql 存储引擎比较
- MySQL存储引擎比较
- MySQL存储引擎比较
- MySQL存储引擎比较
- MySQL存储引擎比较
- MySQL存储引擎比较
- MySQL存储引擎比较
- MySQL存储引擎比较
- MySQL存储引擎比较
- MySQL存储引擎比较
- MySQL存储引擎比较
- 他日一席必有我,blindblindSunShine
- 喝酒小游戏
- Android 笔记 popupMenu 显示图标
- Medium 43题 Multiply Strings
- Easy 235题 Lowest Common Ancestor of a Binary Search Tree
- mysql存储引擎性能比较
- C/C++编译预处理
- http协议返回状态代码及相应含义
- 第一章:备份恢复概述
- oracle锁概念,阻塞
- 第二章:手工备份与恢复
- 第三章:手工完全恢复
- 第四章:手工不完全恢复
- 时钟滴答定时器(sysclk)用法详解