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. Eclipse 自动生成 Ant的Build.xml 配置文件

    Eclipse 自动生成 Ant的Build.xml 配置文件,生成的方法很隐蔽 选择你要生成Build.xml文件的项目,右键. Export-> General -> Ant Buil ...

  2. javascript 的类式继承(构造函数)

    <script type="text/javascript"> //类式继承(构造函数) var father = function(){ this.age = 52; ...

  3. 将List的元素通过中文字符串排序

    类customer public class Customer { public String name; public int age; Customer(String name, int age) ...

  4. 【转】Python 3的pathlib模块:驯服文件系统

    [转]Python 3的pathlib模块:驯服文件系统 https://python.freelycode.com/contribution/detail/1248 Python部落(python. ...

  5. Epoll模型【转】

    转自:https://www.cnblogs.com/tianhangzhang/p/5295972.html 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率.因为 ...

  6. Linux动态库的编译与使用 转载【转】

    转自:http://www.cnblogs.com/leaven/archive/2010/06/11/1756294.html http://hi.baidu.com/linuxlife/blog/ ...

  7. Delphi XE-Windows下配置开发环境 (Android版/IOS)

    Delphi XE-Windows下配置开发环境  (Android版/IOS)   http://www.52jike.com/thread-1-1-1.html Delphi XE5的Androi ...

  8. HTTP笔记01-http相关的基础知识

    这个系列文章是阅读<图解HTTP>后写下的笔记 当我们在浏览器输入url,点击回车后,浏览器显示我们需要的web页面,那么,这个界面是如何产生的? 根据浏览器地址中输入的url,浏览器从相 ...

  9. 设计模式C++学习笔记之十七(Chain of Responsibility责任链模式)

      17.1.解释 概念:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. main(),客户 IWom ...

  10. C++游戏开发需要阅读的书籍

    如果要自学游戏程序开发的话,可以看看下面的,呵呵. 游戏开发资料(PDF书都是中文版的,非英文,很多是本人自己扫描制作,从未网上发布过,所以独家啦):  1.Gamebryo 2.2游戏引擎(盛大.腾 ...