mysql中有多种存储引擎,每种引擎都有自己的特色
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中有多种存储引擎,每种引擎都有自己的特色的更多相关文章
- MySQL支持多种存储引擎
MySQL的强大之处在于它的插件式存储引擎,我们可以基于表的特点使用不同的存储引擎,从而达到最好的性能. MySQL有多种存储引擎:MyISAM.InnoDB.MERGE.MEMORY(HEAP).B ...
- mysql配置与存储引擎与字段类型与约束条件
目录 字符编码与配置文件 存储引擎 创建表的完整语法 字段类型 整型 浮点型 字符类型 数字的含义 枚举与集合 日期类型 约束条件 字符编码与配置文件 在MySQL5.X系列中,显示的字符编码有多种, ...
- MySQL中MyISAM和InnoDB两种主流存储引擎的特点
一.数据库引擎(Engines)的概念 MySQ5.6L的架构图: MySQL的存储引擎全称为(Pluggable Storage Engines)插件式存储引擎.MySQL的所有逻辑概念,包括SQL ...
- Mysql表类型(存储引擎)的比较
面试官问:你知道mysql有哪些存储引擎,区别是啥? 我:一脸闷逼,于是乎下来补一补,以作备查 1.和大多数数据库不同,MySQL 中有一个存储引擎的概念,针对不同的存储需求可以选择最优的存储引擎. ...
- MySQL最全存储引擎、索引使用及SQL优化的实践
1 MySQL的体系结构概述 整个MySQL Server由以下组成 :Connection Pool :连接池组件Management Services & Utilities :管理服务和 ...
- mysql三-1:存储引擎
一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型 ...
- 百万年薪python之路 -- MySQL数据库之 存储引擎
MySQL之存储引擎 一. 存储引擎概述 定义: 存储引擎是mysql数据库独有的存储数据.为数据建立索引.更新数据.查询数据等技术的实现方法 首先声明一点: 存储引擎这个概念只有MySQL才有. ...
- mysql常用的存储引擎,MyISAM和InnoDB的对比
Mysql有多种存储引擎,最常用的有MyISAM和InnoDB这两种,每一种类型的存储引擎都有自已的特点,可以结合项目中数据的使用场景来进行了哪种存储引擎合适. 1:查看mysql数据库支持的存储引擎 ...
- Mysql(三)-1:存储引擎
一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型 ...
随机推荐
- GIT刷新忽略文件.gitignore
1.使用命令工具Git Bash,进入需要修改的工作目录.如C:/est 则输入 cd c:/test 2.重置所有缓存(注意后面有个.) git rm -r --cached . 3.重新添加(注意 ...
- Python11 RabbitMQ Redis
本节内容 1.RabbitMQ 2.Redis RabbitMQ队列 安装 http://www.rabbitmq.com/install-standalone-mac.html 安装python r ...
- python编程 之 json包
1,json是什么? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写. 我的理解就是:json是一种统一的格式化的文件,比如,一个jso ...
- python异常处理的两种写法
(1)第一种写法 需要注意的是 在抛出异常的时候,HTTPError必须写在URLError之前,因为只有这样前者才能抛出异常,不然的话就会被后者拦截,提前抛出异常. from urllib.requ ...
- poi读取Excel模板并修改模板内容与动态的增加行
有时候我们可能遇到相当复杂的excel,比如表头的合并等操作,一种简单的方式就是直接代码合并(浪费时间),另一种就是写好模板,动态的向模板中增加行和修改指定单元格数据. 1.一个简单的根据模板shee ...
- LordPE修复从进程dump出来的内存文件
场景 应急响应中从进程发现被注入了EXE文件,通过processhacker的Memory模块dump出来注入的文件.PE修复后在IDA里反汇编查看这个恶意代码的功能是什么. 解决 LordPE 虚拟 ...
- MFC修改对话框标题
对话框标题栏内容为静态 直接在对话框属性"常规"的"Caption"中修改. 动态生成对话框标题栏内容 SetWindowText()函数就可以 CString ...
- qunee 开发清新、高效的拓扑图组件 http://www.qunee.com/
qunee 开发清新.高效的拓扑图组件 http://www.qunee.com/ RoadFlow: http://www.cqroad.cn/ 村暖花开
- MySQL log_slave_updates 参数【转】
说明:最近部署了mysql的集群环境,详细如下M01和M02为主主复制,M01和R01为主从复制:在测试的过程中发现了以下问题: 1.M01和M02的主主复制是没有问题的(从M01写入数据能同步到M0 ...
- mac使用pytesseract
import locale locale.setlocale(locale.LC_ALL, 'C') import pytesseract import pathlib import tracebac ...