一.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对比介绍和优缺点相关推荐

  1. MySQL存储引擎InnoDB,MyISAM

    MySQL存储引擎InnoDB,MyISAM 1.区别: (1)InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQ ...

  2. 数据库关机_数据库:MySQL常见的三种存储引擎InnoDB、MyISAM、MEMORY的区别?

    InnoDB.MyISAM两种存储引擎的大致区别? 1.InnoDB支持事务,MyISAM不支持, 这一点是非常之重要.事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyI ...

  3. 常用Mysql存储引擎--InnoDB和MyISAM简单总结

    常用Mysql存储引擎--InnoDB和MyISAM简单总结 2013-04-19 10:21:52|  分类: CCST|举报|字号 订阅 MySQL服务器采用了模块化风格,各部分之间保持相对独立, ...

  4. mysql存储引擎InnoDB与MyISAM的区别

    mysql存储引擎InnoDB与MyISAM的区别 众所周知,mysql之前的存储引擎是MyISAM,在5.6版本之后默认的存储引擎是InnoDB,那么两个存储引擎有什么区别? 一.MyISAM 存储 ...

  5. MySQL存储引擎InnoDB、MyISAM和MEMORY介绍详解和区别

    文章目录 MySQL存储引擎InnoDB.MyISAM和MEMORY介绍详解和区别 InnoDB存储引擎 特点 操作示例 创建InnoDB表 修改表引擎为InnoDB MyISAM存储引擎 特点 操作 ...

  6. 数据库存储引擎—InnoDB,MyISAM,Memory

    数据库存储引擎-InnoDB,MyISAM 存储引擎 首先,什么是存储引擎: Mysql用各种不同的存储技术,将数据存储到文件或内存中.数据库存储引擎是数据库的底层的软件组件,数据库可以使用数据存储引 ...

  7. mysql数据库引擎InnoDB和MyISAM

    一.Mysql锁分类 表级锁:开销小,加锁块:不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并发性也最高. 页面 ...

  8. MySQL学习笔记--常用存储引擎InnoDB与MyISAM总结

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.MyISAM 特性 1. 并发性与锁级别 2. 表损坏修复 3. MyISAM表支持的索引 4. MyISAM表支持压缩 ...

  9. mysql数据库修复_MySQL数据库修复方法(MyISAM/InnoDB)

    在网上找了篇MySQL的技术文章,感觉不错,把它翻译过来共享下. 原文作者:Mike Peters 我整理了7条修复MySQL数据库的方法,当简单的重启对数据库不起作用,或者有表崩溃时. 简单的MyS ...

最新文章

  1. android ffmpeg 编码h264,Mac系统下ffmpeg+h264+flv编码的android录制屏幕实现2
  2. python【蓝桥杯vip练习题库】ALGO-10集合运算
  3. 《系统集成项目管理》第十四章 项目采购管理
  4. 使用Chrome开发者工具研究JavaScript里函数的原生实现
  5. SVG格式的Icon,用了你就知道有多香
  6. 聚类分析在用户行为中的实例_看完这篇,你还敢说不懂聚类分析?
  7. vue验证整数_vue input 输入校验字母数字组合且长度小于30的实现代码
  8. JavaWeb后台知识总结
  9. 注册规划师 计算机科学与技术,关于公布2018年度注册城乡规划师考试合格人员名单的通知...
  10. 成语答题小程序源码安装 开源的成语答题小程序
  11. 【IoT】创业:产品雷达图 - 如何明智地权衡产品?
  12. 蒙特卡洛方法(Monte-Carlo Simulation)
  13. c语言课程设计作业心得体会,【c语言课程设计心得体会】 c语言课程设计报告总结...
  14. deflate与gzip
  15. playwright 组件超时问题
  16. 扡扫机器人_评测:不会满场乱飞奔 这台Anker扫拖机器人指哪儿扫哪儿
  17. 环信开发的坑(环信客户互动云)
  18. CRMEB全开源Java版微信小程序商城,附源码
  19. CouchDB与MongoDB对比
  20. 各种奇葩3389连接不上的解决方法

热门文章

  1. Mybatis知识点讲解 【笔记】
  2. 近红外与中红外光谱分析的区别
  3. 抖音iphone版despacito手机铃声攻略教程
  4. Ansys EM支持的GPU加速详细列表
  5. Windows系统服务大全
  6. python 如何判断数据类型
  7. Linux结束sh脚本命令,Shell脚本break和continue命令简明教程
  8. java 三角形面积公式_java中计算任意三角形面积。
  9. 解决MongoDB启动失败
  10. qtextedit 设置html,QTextEdit