mysql中有多种存储引擎,每种引擎都有自己的特色。

用途: MyISAM:快读,
Memory:内存数据,
InnoDB:完整的事务支持
锁: MyISAM:全表锁定,
Memory:全表锁定,
InnoDB:多种隔离级别的行锁
持久性:MyISAM:基于表恢复,
Memory:无磁盘I/O,无可持久性,
InnoDB:基于日志恢复
事务类型:MyISAM:不支持,
Memory:不支持,
InnoDB:支持
支持索引类型:MyISAM:B-tree/FullText/R-tree,
Memory:Hash/B-tree,
InnoDB:Hash/B-tree MyISAM注重性能,InnoDB注重事务,一般使用MyISAM类的表做非事务型的业务,最新的mysql建表默认都
是InnoDB类型的。MyISAM在高并发的性能瓶颈很明显,主要原因就说锁定机制导致阻塞。而InnoDB在
锁定机制采用行行级锁,不同于MyISAM的表级锁,行级锁在锁定上带来的消耗大于表级锁,但是在系统并
发访问量高时,InnoDB整体性能高于MyISAM。同时,InnoDB的索引不仅缓存索引本身,也缓存数据,
所以InnoDB需要更大的内存。
选择合适存储引擎
(1)采用MyISAM 引擎
1.R/W(读写比例)>100:1切update相对较少
2.并发不高,不需要事务
3.表数据量小
4.硬件资源有限
(2)采用InnoDB
1.R/W(读写比例) 较小,频繁更新大字段
2.表数据量超过1000W,并发高
3.安全性和可用性要求高
(3)采用Memory
1.有足够的内存
2.对数据一致性要求不高
3.需要定期归档的数据
mysql服务器调整优化措施
1.关闭不必要的二进制日志和慢查询日志,仅在内存足够和开发调试时打开他们,使用下面的语句查看是否打
开。
show variables like '%slow%';
还可以使用下面的语句查看慢查询的条数,定期打开方便优化
show global status like '%slow%';
但是慢查询也会带来一些CPU损耗,建议间断性打开慢查询日志来定位性能瓶颈
2.适度使用Query,Cache
3.增加mysql允许的最大连接数,使用下面的语句查看mysql允许的最大连接数
show variables like 'max_connections';
4.对于MyISAM表适当增加key_buffer_size,这需要根据key_cache的命中率进行计算,例如:
show global status like 'key_read%';
计算方式 key_cache_miss_rate=Key_reads/Key_read_requests*100%;
当key_cache_miss_rate值大于1%时就需要适当增加key_buffer_size了,对于MySAM,还需要注table_cach
e的设置。当table_cache不够用的时候,mysql会采用LRU【缓存淘汰算法】踢掉最长时间没有使用的表;如果table_cache设置
过小,MySAM就会反复打开、关闭FRM文件,造成一定的性能损失;如果table_cache
设置过大,mysql将会消耗很多CPU资源
去处理table_cache的算法。因此table_cache值一定要合理,可以参考opened_tables参数的值,如果这个值一直增长,就需要适当增加table_cache值,
对于InnoDB,需要重点注意,innodb_buffer_pool_size参数。
5.从表中删除大量行后,可运行OPTIMIZE TABLE TableName 进行碎片整理。

mysql中有多种存储引擎,每种引擎都有自己的特色的更多相关文章

  1. MySQL支持多种存储引擎

    MySQL的强大之处在于它的插件式存储引擎,我们可以基于表的特点使用不同的存储引擎,从而达到最好的性能. MySQL有多种存储引擎:MyISAM.InnoDB.MERGE.MEMORY(HEAP).B ...

  2. mysql配置与存储引擎与字段类型与约束条件

    目录 字符编码与配置文件 存储引擎 创建表的完整语法 字段类型 整型 浮点型 字符类型 数字的含义 枚举与集合 日期类型 约束条件 字符编码与配置文件 在MySQL5.X系列中,显示的字符编码有多种, ...

  3. MySQL中MyISAM和InnoDB两种主流存储引擎的特点

    一.数据库引擎(Engines)的概念 MySQ5.6L的架构图: MySQL的存储引擎全称为(Pluggable Storage Engines)插件式存储引擎.MySQL的所有逻辑概念,包括SQL ...

  4. Mysql表类型(存储引擎)的比较

    面试官问:你知道mysql有哪些存储引擎,区别是啥? 我:一脸闷逼,于是乎下来补一补,以作备查 1.和大多数数据库不同,MySQL 中有一个存储引擎的概念,针对不同的存储需求可以选择最优的存储引擎. ...

  5. MySQL最全存储引擎、索引使用及SQL优化的实践

    1 MySQL的体系结构概述 整个MySQL Server由以下组成 :Connection Pool :连接池组件Management Services & Utilities :管理服务和 ...

  6. mysql三-1:存储引擎

    一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型 ...

  7. 百万年薪python之路 -- MySQL数据库之 存储引擎

    MySQL之存储引擎 一. 存储引擎概述 定义: 存储引擎是mysql数据库独有的存储数据.为数据建立索引.更新数据.查询数据等技术的实现方法 ​ 首先声明一点: 存储引擎这个概念只有MySQL才有. ...

  8. mysql常用的存储引擎,MyISAM和InnoDB的对比

    Mysql有多种存储引擎,最常用的有MyISAM和InnoDB这两种,每一种类型的存储引擎都有自已的特点,可以结合项目中数据的使用场景来进行了哪种存储引擎合适. 1:查看mysql数据库支持的存储引擎 ...

  9. Mysql(三)-1:存储引擎

    一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型 ...

随机推荐

  1. Http 持久连接与 HttpClient 连接池

    一.背景 HTTP协议是无状态的协议,即每一次请求都是互相独立的.因此它的最初实现是,每一个http请求都会打开一个tcp socket连接,当交互完毕后会关闭这个连接. HTTP协议是全双工的协议, ...

  2. MIME 类型

    关于读音 为了防止大家出去丢人,我先示范一下,MIME应该独坐[maim],听起来就好像“男人”的英语法人一样. 浏览器和MIME的关系 浏览器依靠MIME类型解释网页. 每当浏览器请求一个web页面 ...

  3. 【mmall】Guava框架

    Guava 简介:http://www.yiibai.com/guava 本项目主要用到了Guava缓存

  4. python - 练习统计随机字母数据

    # 随机字母,统计每个字母的数量: # 1.按a-z 的方式 显示每个字母的数量 # 2.按从多到少的方式 显示每个字母的数据 info= "fkdsfkasefhjsadfjagroekl ...

  5. python读取两个文件并且判断是否一致

    ''' 判断两个文件是否相同,如果不同请指出第几行不相同 ''' def f1vsf2(name1,name2): f1 = open(name1) f2 = open(name2) count = ...

  6. SpringSecurityOAuth使用JWT Token

    ⒈JWT? JWT(Json Web Token),是Json的一个开放的Token标准. 1,自包含,SpringSecurityOAuth的默认Token是UUID的一个随机的无意义的字符串,并不 ...

  7. 统计分析与R软件-chapter2-2

    2.2 数字.字符与向量 2.2.1 向量 1.向量的赋值 x<-c(10.4,5.6,3.1,6.4,21.7) 2.向量的运算 x<-c(-1,0,2);y<-c(3,8,2) ...

  8. ARM的Jazelle技术【转】

    转自:https://blog.csdn.net/ken_yjj/article/details/6797290 Come From: http://www.arm.com/zh/products/p ...

  9. Python 编程核心知识体系(REF)

    Python 编程核心知识体系: https://woaielf.github.io/2017/06/13/python3-all/ https://woaielf.github.io/page2/

  10. C# 操作文件类,文件夹存在判断,创建,文件内容读写。

    此篇文档是老早就放到草稿箱中了,断断续续编辑了几次.结合自己经常用到的对于文件的操作,结合msdn做此文. 1.File 类 --转自msdn 常用方法: 名称 说明 AppendAllLines(S ...