mysql myisam 优点_mysql引擎Innodb和Myisam对比介绍和优缺点
一.myisam引擎
1.mysql默认引擎,不支持事务*
2.表级锁定,更新时,锁定机制是整张表被锁定,其它连接无法更新表的数据,效率比较低下.锁的机制成本很少,但大大降低了并发性能*
3.读写互相阻塞,写的时候阻塞读,读的时候也阻塞写,但读与读之间不阻塞*
4.只对索引进行缓存,虽然key_buffer可以大幅提高性能,减少磁盘IO,但对数据不缓存
5.适合读业务比较多的生产环境,比如BLOG等,读的速度比较快.
6.占用资源比较少.服务器硬件不好时.可以考虑使用
7.数据恢复没有innodb引擎恢复的完美
8.支持全文索引,不支持外键约束
二.mysiam引擎应用场景:
1.不需要事务支持的场景,读数据多的网站.
2.并发相对较低的业务,因为表级锁定的机制限制
3.数据修改相对较少的业务.阻塞问题
4.对数据要求一致性不高的业务.
三.myisam引擎优化:
1.尽量索引,缓存机制
2.调整读写优先级
3.启用延迟插入.
4.生产环境应用memcache缓存的多.Mysql本身的缓存为用少
四.innodb引擎
1.支持事务,四个级别的事务
2.锁定机制一般是行级锁定.更新时只锁定当前行,其它的行.没关系,可以继续读写.全表扫描.还是表锁*
3.读写阻塞与事务的隔离相关,读取速度一般*
4.可以缓存数据和索引,高效的缓存特性
5.支持分区,表空间.
5.适合读写业务比较多的环境,比如BBS等.一般的生产环境,也推荐用innodb.效率高
6.服务器资源开销大
8.支持外键约束,不支持全文索引.
五.innodb应用场景
1.需要事务支持的业务
2.适合高并发的业务,行级锁定.对高并发有很好的适应能力.但要确定查询是通过索引完成.
3.数据更新比较频繁的场景.如BBS
4.数据一致性要求较高
5.硬件设备内存较大时,可以利用innodb较好的缓存能力来提高内存利用率.尽可能的减少磁盘IO
六.innodb调优
1.my.cnf中参数
[root@ser200 3306]# grep -i "innodb" my.cnf
default_table_type = InnoDB
innodb_additional_mem_pool_size = 4M
innodb_buffer_pool_size = 32M #Innodb核心参数,生产环境会给的很大.16G内存,双实例,会给2G的缓存
innodb_data_file_path = ibdata1:128M:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 4M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0
生产环境16G内存服务器调优实例:
default_table_type = InnoDB
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2048M #Innodb核心参数,生产环境会给的很大.16G内存,双实例,会给2G的缓存
innodb_data_file_path = ibdata1:1024M:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_log_file_size = 128M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0
生产环境设置好参数,不怎么会改动上面的参数.主要是SQL语句的调优,改上面参数作用有限.最核心优化是每个语句走索引
2.主键尽可能小.包括索引
3.尽量避免全表扫描.因为会造成表锁
4.尽量缓存所有的数据和索引,提高响应速度,减少磁盘IO消耗
发现:数据库核心调优.让用户尽量去缓存上找数据,到内存找数据,少到磁盘上找数据.
5.大批量小插入,尽量自己控制事务,而不要使用autocommit自己提交
6.合理设置flush_log_at_trx_commit,不要过份追求安全性.
你有可能还对以下内容感兴趣:
mysql myisam 优点_mysql引擎Innodb和Myisam对比介绍和优缺点相关推荐
- MySQL存储引擎InnoDB,MyISAM
MySQL存储引擎InnoDB,MyISAM 1.区别: (1)InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQ ...
- 数据库关机_数据库:MySQL常见的三种存储引擎InnoDB、MyISAM、MEMORY的区别?
InnoDB.MyISAM两种存储引擎的大致区别? 1.InnoDB支持事务,MyISAM不支持, 这一点是非常之重要.事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyI ...
- 常用Mysql存储引擎--InnoDB和MyISAM简单总结
常用Mysql存储引擎--InnoDB和MyISAM简单总结 2013-04-19 10:21:52| 分类: CCST|举报|字号 订阅 MySQL服务器采用了模块化风格,各部分之间保持相对独立, ...
- mysql存储引擎InnoDB与MyISAM的区别
mysql存储引擎InnoDB与MyISAM的区别 众所周知,mysql之前的存储引擎是MyISAM,在5.6版本之后默认的存储引擎是InnoDB,那么两个存储引擎有什么区别? 一.MyISAM 存储 ...
- MySQL存储引擎InnoDB、MyISAM和MEMORY介绍详解和区别
文章目录 MySQL存储引擎InnoDB.MyISAM和MEMORY介绍详解和区别 InnoDB存储引擎 特点 操作示例 创建InnoDB表 修改表引擎为InnoDB MyISAM存储引擎 特点 操作 ...
- 数据库存储引擎—InnoDB,MyISAM,Memory
数据库存储引擎-InnoDB,MyISAM 存储引擎 首先,什么是存储引擎: Mysql用各种不同的存储技术,将数据存储到文件或内存中.数据库存储引擎是数据库的底层的软件组件,数据库可以使用数据存储引 ...
- mysql数据库引擎InnoDB和MyISAM
一.Mysql锁分类 表级锁:开销小,加锁块:不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并发性也最高. 页面 ...
- MySQL学习笔记--常用存储引擎InnoDB与MyISAM总结
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.MyISAM 特性 1. 并发性与锁级别 2. 表损坏修复 3. MyISAM表支持的索引 4. MyISAM表支持压缩 ...
- mysql数据库修复_MySQL数据库修复方法(MyISAM/InnoDB)
在网上找了篇MySQL的技术文章,感觉不错,把它翻译过来共享下. 原文作者:Mike Peters 我整理了7条修复MySQL数据库的方法,当简单的重启对数据库不起作用,或者有表崩溃时. 简单的MyS ...
最新文章
- android ffmpeg 编码h264,Mac系统下ffmpeg+h264+flv编码的android录制屏幕实现2
- python【蓝桥杯vip练习题库】ALGO-10集合运算
- 《系统集成项目管理》第十四章 项目采购管理
- 使用Chrome开发者工具研究JavaScript里函数的原生实现
- SVG格式的Icon,用了你就知道有多香
- 聚类分析在用户行为中的实例_看完这篇,你还敢说不懂聚类分析?
- vue验证整数_vue input 输入校验字母数字组合且长度小于30的实现代码
- JavaWeb后台知识总结
- 注册规划师 计算机科学与技术,关于公布2018年度注册城乡规划师考试合格人员名单的通知...
- 成语答题小程序源码安装 开源的成语答题小程序
- 【IoT】创业:产品雷达图 - 如何明智地权衡产品?
- 蒙特卡洛方法(Monte-Carlo Simulation)
- c语言课程设计作业心得体会,【c语言课程设计心得体会】 c语言课程设计报告总结...
- deflate与gzip
- playwright 组件超时问题
- 扡扫机器人_评测:不会满场乱飞奔 这台Anker扫拖机器人指哪儿扫哪儿
- 环信开发的坑(环信客户互动云)
- CRMEB全开源Java版微信小程序商城,附源码
- CouchDB与MongoDB对比
- 各种奇葩3389连接不上的解决方法