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. python作业高级FTP

    转载自:https://www.cnblogs.com/sean-yao/p/7882638.html 作业需求: 1. 用户加密认证 2. 多用户同时登陆 3. 每个用户有自己的家目录且只能访问自己 ...

  2. Exception:两个类具有相同的 XML 类型名称,请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称

    具体报错:  找到报错的类: 对XmlType重新命名(最简单粗暴的方法):

  3. css3基础一

    1,css简介 CSS 用于控制网页的样式和布局.样式定义如何显示html元素,样式通常保存在外部的 .css 文件中.通过仅仅编辑一个简单的 CSS 文档,外部样式表使你有能力同时改变站点中所有页面 ...

  4. xht37的码风

    写在前面 众所周知,在 Dev-C++ 上有一个代码格式化的功能,快捷键Ctrl+Shift+A 我的码风致力于写出格式化后毫无变化的代码,这被认为是标准代码 同时,对不可格式化的部分(如空格),我同 ...

  5. Yara VS2017出现LINK : fatal error LNK1104: 无法打开文件“msvcrt.lib”

    解决方法1 搜索msvcrt.lib所在的路径 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MS ...

  6. Linux电源管理(7)_Wakeup events framework【转】

    转自:http://www.wowotech.net/pm_subsystem/wakeup_events_framework.html 1.  前言 本文继续“Linux电源管理(6)_Generi ...

  7. MongoVUE 使用教程

    MongoVUE是一款针对MongoDB的客户端工具,现在连接数据库也叫数据模式有2种方法,一种是B/S结构的数据库,通过网页就可以访问.另外一种就是基于C/S客户端的连接方式,本次为大家分享的这一个 ...

  8. bigfile tablespace

    背景       这次终于有个linux实际迁移oracle的机会了,之前都是学习实验.想起最早时,都是windows搞oracle,又让我想起多年期一个项目,数据量太大及计算逻辑太复杂,我用存储过程 ...

  9. 008_falcon磁盘io计算方法

    一.falcon磁盘IO告警计算方法 (1)线上告警示例 [falcon]环境: prod 时间: 2018-11-10 22:29 共1条 [#主机磁盘io过高(appid)]主机hostname磁 ...

  10. $Django 发送邮件--django封装模块和python内置SMTP模块

    一 使用SMTP模块发送邮件 import smtplib from email.mime.text import MIMEText from email.header import Header m ...