一.myisam的IO调优

1.myisam通常在每次写入后把索引的改变刷写到磁盘上.所以批处理通常会更快点.做到这点,可以通过LOCK TABLES,他可以把写入控制到对表解锁.

还可以用delay_key_write变量来延迟索引的写入,如果使用他,只有在表关闭的时候写入键缓存.它有以下选项:

OFF 每次索引改变后,写入磁盘
ON  延迟键开启,但只针对使用DELAY_KEY_WRITE选项创建的表有效
ALL 所有myisam表都是用延迟键写入

延迟键开启,通常不能带来性能上的飞跃,在数据量小,读取命中率较好并且写入命中率较差的时候效果最好.但也带来一些负面影响
a.服务器崩溃并且数据没被刷写到磁盘上,索引就会损坏.
b.mysql需要更多的时间来关闭表
c.FLUSH TABLES可能需要更多的时间
d.查询要等待键缓存区释放空间而停止

2.myisam配置从损坏中恢复

myisam_recover(命令行参数是myisam_recover_options)控制了myisam查找和修复表的方式

有以下值:
DEFAULT:默认或不设置,只恢复
BACKUP:把数据文件备份到.BAK文件中
FORCE:即使.MYD丢失数据多于一行,恢复也会继续
QUICK:除非有删除的数据才会跳过恢复.

可以使用多重设置,中间用逗号隔开,比如BACKUP,FORCE

二.innodb的IO调优
1.innodb日志文件总体大小由innodb_log_file_size和innodb_log_files_in_group控制,并且他们对写入影响极大.默认值分别是5m和10m.

2.控制缓冲大小的变量是innodb_log_buffer_size,默认是1m,推荐设置值是1m到8m

3.innodb_flush_method可以配置innodb实际与文件系统进行交互的方式

4.配置表空间
innodb_data_file_path定义表空间文件
innodb_data_home_dir定义在目录中

innodb_data_file_path = ibdata1:1G;ibdata2:1G;ibdata3:1G
上面的例子在3个文件中创建了3GB表空间

下面的例子限制延伸文件最大为2GB
...ibdata3:1G:autoextend:max:2G

5.使用innodb_file_per_table使每个表使用一个文件,以表名.ibd保存数据.但坏处是表空间的碎片都放在了.ibd中,这对于很小的表尤其会成为一个问题.因为innodb的页面大小是16kb,即使表只有1kb,也会需要至少16kb的磁盘空间

三.myisam的并发调优
1.可以使用concurrent_insert变量配置myisam的并发插入行为,
0 不允许并发插入
1 默认值,只要表中没有空缺,允许并发插入
3 强制并发插入到表尾

四.innodb并发调优
1.控制并发的的方式是使用innodb_thread_concurrency变量,它限制了有多少线程进入内核.0为不限制
并发 = cpu数量*磁盘数量*2

2.innodb_commit_concurrency决定了某一时刻有多少线程提交,但innodb_thread_concurrency被设置为一个较小值,造成大量线程不佳时,可以设置该值

MySQL并发调优和IO调优的更多相关文章

  1. mysql日常运维与参数调优

    日常运维 DBA运维工作 日常 导数据,数据修改,表结构变更 加权限,问题处理 其它 数据库选型部署,设计,监控,备份,优化等 日常运维工作: 导数据及注意事项 数据修改及注意事项 表结构变更及注意事 ...

  2. MySQL 优化之 Linux系统层面调优

    MySQL 一般运行于Linux系统中.对于MySQL的调优一般分为Linux操作系统层面的调优和MySQL层面的调优(当然还有架构层面.业务层面.应用程序层面的调优).操作系统主要是管理和分配硬件资 ...

  3. MySQL管理之道:性能调优、高可用与监控》迷你书

    MySQL管理之道:性能调优.高可用与监控>迷你书 MYSQL5.5.X主要改进 1.默认使用innodb存储引擎2.充分利用CPU多核处理能力3.提高刷写脏页数量和合并插入数量,改善I/O4. ...

  4. MySQL管理之道:性能调优、高可用与监控内置脚本

    MySQL管理之道:性能调优.高可用与监控内置脚本 随书附送脚本 keepalive配置文件和脚本开源工具pssh批量管理服务器(python) 下载地址 http://files.cnblogs.c ...

  5. IO 调优

    磁盘优化 1.增加缓存 2.优化磁盘的管理系统 3.设计合理的磁盘存储数据块 4.应用合理的RAID策略 TCP网络参数调优 网络IO优化 1.减少网络交互次数 2.减少网络传输数据量的大小 3.尽量 ...

  6. MySQL基础普及《MySQL管理之道:性能调优、高可用与监控》

    最近工作的内容涉及MySQL运维内容,陆陆续续读了几本相关的书,其中一本是<MySQL管理之道:性能调优.高可用与监控>. 内容涵盖性能调优(包括sql优化等).备份.高可用,以及读写分离 ...

  7. MySQL管理之道,性能调优,高可用与监控(第二版)pdf下载

    MySQL管理之道,性能调优,高可用与监控(第二版) 书中内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和新知识的拓展,同时也针对运维人员.DBA等相关工作者会遇到的有代表性的疑难问题给出了 ...

  8. Spark(六)Spark之开发调优以及资源调优

    Spark调优主要分为开发调优.资源调优.数据倾斜调优.shuffle调优几个部分.开发调优和资源调优是所有Spark作业都需要注意和遵循的一些基本原则,是高性能Spark作业的基础:数据倾斜调优,主 ...

  9. 【Spark篇】---Spark调优之代码调优,数据本地化调优,内存调优,SparkShuffle调优,Executor的堆外内存调优

    一.前述 Spark中调优大致分为以下几种 ,代码调优,数据本地化,内存调优,SparkShuffle调优,调节Executor的堆外内存. 二.具体    1.代码调优 1.避免创建重复的RDD,尽 ...

随机推荐

  1. [原]DbHelper-SQL数据库访问助手

    using System; using System.Data; using System.Data.SqlClient; namespace Whir.Software.Framework.Ulti ...

  2. Java中如何使封装自己的类,建立并使用自己的类库?

    转自:http://blog.csdn.net/luoweifu/article/details/7281494 随着自己的编程经历的积累会发现往往自己在一些项目中写的类在别的项目中也会有多次用到.你 ...

  3. JS中使用EL表达式

    转自:http://blog.csdn.net/monkeyking1987/article/details/17146951 分两种情况 1. JS代码在JSP页面中, 这可以直接使用EL表达式. ...

  4. open(/dev/ietctl, O_RDWR) 参数含义(转载)

    这是文件I/O的常用函数,open函数,open函数用来打开一个设备,他返回的是一个整型变量,如果这个值等于-1,说明打开文件出现错误,如果为大于0的值,那么这个值代表的就是文件描述符.一般的写法是i ...

  5. 神经网络:多层网络与C++实现

    相关源码可参考最新的实现:https://github.com/ronnyyoung/EasyML ,中的neural_network模块,后持续更新,包括加入CNN的结构. 一.引言 在前一篇关于神 ...

  6. loj 1300( 边双联通 + 判奇圈 )

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=27010 思路:首先Tarjan标记桥,然后对于dfs遍历整个图,我 ...

  7. cocos2dx游戏开发——微信打飞机学习笔记(六)——PlayerLayer的搭建

    一.创建文件~ PlayerLayer.h PlayerLayer.cpp 一般类名都会和文件名有关系的~(在这里当然是一样) 二.How to do? 1.首先就是放一个飞机~ CC_SYNTHES ...

  8. 【转】reduce端缓存数据过多出现FGC,导致reduce生成的数据无法写到hdfs

    转自  http://blog.csdn.net/bigdatahappy/article/details/41726389 转这个目的,是因为该贴子中调优思路不错,值得学习 搜索推荐有一个job,1 ...

  9. XML的验证模式

    XML文件的验证模式保证了XML文件的正确性,而比较常用的验证模式有两种:DTD和XSD. DTD与XSD区别 DTD(Document Type Definition)即文档类型定义,是一种XML约 ...

  10. compareTo,Comparator和equals

    compareTo和equal 在Java中我们常使用Comparable接口来实现排序,其中compareTo是实现该接口方法.我们知道compareTo返回0表示两个对象相等,返回正数表示大于,返 ...