mysql性能调优--总括

标签: mysql 性能调优 | 发表时间:2015-01-17 18:10 | 作者:Supanccy2013
出处:http://www.iteye.com
每张表数据最好不要超过2000W 条数据
超过之后分表存储,分库存储
一个实例oracle一时打开一个数据库
一个实例mysql一时打开多个数据库


按对数据调优影响从高到低依次为:

数据库的设计与规划
数据的引用(sql)
mysql服务优化,内存磁盘的使用
操作系统优化
升级硬件设备

数据库的设计与规划:
事务处理用innodb引擎。
非事务处理用myIsam
mysql版本的影响。

尽量采取优化算法
建立合适的索引

插入,修改,删除数据的时候,索引是最大的瓶颈。
所以如果要导入数据的时候就删除索引。


所用exists少用in
尽量避免使用is null,所以经常不要允许为null,设置默认值。


mysql内存配置:
my.ini
query_cache_size:
table_case:


磁盘io规划:
raid技术:
-raid 0+1
raid 0
raid 5

swap分区的使用
-最好使用单独的raid0 分区

磁盘分区
--磁盘读取分流
数据读写特别大库文件放到多个磁盘上。

一个库放在一个分区上。


操作系统的优化
优化网络:
linu 采用bonding技术

优化系统内核:
--优化系统tcp连接
--优化系统打开文件的最大限制

关闭不必要的服务


第二章优化mysql服务
show status;
show variables;
show processlist;
show warnings;
show errors;

启动mysql慢速查询日志:
log-slow-queries = /new/log.log
long-query-time=5
log-queries-not-using-indexes mysql4.1以后的版本有效

通过mysqldumpslow命令制定日志文件的路径进行查看


对查询进行缓存
缓存的大小不是越大越好,也不是越少越好。适当最好。
查询命中率越高越好


对mysql资源进行强制配置:
max_connections  //最大连接数 一般1000
wait_timeout    //空闲多长时间后断开链接
max_connect_errors    //最大的错误链接数 一般设置为2001


表的告诉缓存:
table_cache   //缓存表的数量
open_tables   //已经打开表的数量
opened_tables  //需要打开表的数量  越大 表示 table_cache 设置的小了

加size表示的空间大小,不加的表示个数

thread_cache

threads_created   //线程的创建数量,越大表示thread_cache 设置的小了。


关键字缓冲区
key_buffer_size      

key_read_requests   //请求的总数
key_reads        //命中磁盘的请求个数
key_read_requests / key_reads  = 100/1  表示需要增加key_buffer_zise
key_read_requests / key_reads  = 1000/1  表示比key_buffer_size大小比较合适

命中率: (key_read_requests - key_reads) / key_read_requests


临时表的大小,内存区域,用于存放临时表,不是程序员操作的,
是mysql引擎自动的需要创建的。
tmp_table_size
created_tmp_table    //创建tmp表的数量
created_temp_disk_table  //创建tmp磁盘表的数量,数量不断增加,表示tmp_table_size

查询的两种方式
select_scan
select_range


排序缓冲区
sort_buffer_size

sort_range
sort_rows
sort_merge_passes   //次数,磁盘内容合并次数,越大,表示sort_buffer_size需要增加
sort_buffer_size也不是越大越好。


mysql调优工具。
mytop
http://jeremy.zawodny.com/mysql/mytop
mytop -u username -p passwor

mysqlard
mysqlreport
mysqlslap 是myslq官方提供的压力测试工具  mysql 5.1以后。
phpmyadmin



日常维护小技能
安全是第一位。之后再讨论效率
myisam备份方法
mysqlhotcopy:拷贝数据文件到制定的目录,先锁着,再解锁。不适合很繁忙的时候备份
              数据不会丢,很方便
mysqldump: 先锁着,通过sql语句方式,生成sql语句。
            最好每张表每张sql,不要一个库一个sql,否则会很大的sql文件

innodb备份文件
mysqldump
innodb hot backup 非免费。

二进制恢复2
二进制日志 binlog
-mysqlbinlog

直接备份数据文件
flush tables with read lock  直接拷贝数据文件。


已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [mysql 性能调优] 推荐:

mysql 性能调优(转)

- - 数据库 - ITeye博客
转自:http://suhuanzheng7784877.iteye.com/blog/2047209. Mysql高性能学习笔记-01. Mysql整体的架构模块如下图所示. 模块1:连接客户端,这个一般是指mysql基于mysql通讯协议的驱动程序. 比如mysql的Java的JDBC驱动程序——mysql-connector-java-5.1.26-bin.jar.

mysql性能调优--总括

- - 数据库 - ITeye博客
每张表数据最好不要超过2000W 条数据. 超过之后分表存储,分库存储. 一个实例oracle一时打开一个数据库. 一个实例mysql一时打开多个数据库. 按对数据调优影响从高到低依次为:. mysql服务优化,内存磁盘的使用. 插入,修改,删除数据的时候,索引是最大的瓶颈. 所以如果要导入数据的时候就删除索引.

2012DTCC – MySQL性能调优最佳实践

- - Sky.Jian 朝阳的天空
上周受邀于 IT168,在 2012年度的 DTCC 大会上做了一个小的主题分享,内容主要是最近几年在 MySQL 数据库的性能调优过程中积累的一点点经验总结,希望能对大家有用. 其中部分内容在之前的 第二届华东地区数据库大会 上已经有过分享,这次是在当时分享内容的基础上增加了硬件和系统层面的内容,同时根据听众反馈对原有内容进行了部分优化改进.

(转)针对MySQL的Linux性能调优技巧[翻译]

- - jackyrong
原文作者: Alexander Rubin,Percona 工程师. 原文连接:Linux performance tuning tips for MySQL. 为了方面阅读,我没依照原文按行逐句的进行翻译. 另外,我自己的扩充了一下基础知识点,很多知识点也是我第一次去学习,翻阅了一些资料. 原文中对Linux系统参数的优化主要分为文件系统、内存与swap、CPU三方面.

Mysql Tomcat C3p0 系统性能调优个人总结

- - CSDN博客数据库推荐文章
应用逻辑 就是用c3p0 到数据库查询数据并http返回Json数据. 1 调优前的最初的测试结果   JMeter test result. 这个数据是从程序的log 中打印出的 数据库select语句 中得出的结果(正确与否后面会有讨论). 2 经过IOD系统打印 SQL query 的执行时间 和 tomcat 每个request 的 响应时间,找出 系统瓶颈 是因为一个 select语句 使用了 in:.

HBase性能调优

- - 学着站在巨人的肩膀上
我们经常看到一些文章吹嘘某产品如何如何快,如何如何强,而自己测试时却不如描述的一些数据. 其实原因可能在于你还不是真正理解其内部结构,对于其性能调优方法不够了解. 本文转自TaoBao的Ken Wu同学的博客,是目前看到比较完整的HBase调优文章. 原文链接:HBase性能调优. 因官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果.

hbase性能调优

- - 数据库 - ITeye博客
   1)、hbase.regionserver.handler.count:该设置决定了处理RPC的线程数量,默认值是10,通常可以调大,比如:150,当请求内容很大(上MB,比如大的put、使用缓存的scans)的时候,如果该值设置过大则会占用过多的内存,导致频繁的GC,或者出现OutOfMemory,因此该值不是越大越好.

Hadoop性能调优

- - 开源软件 - ITeye博客
是否对任务进行profiling,调用java内置的profile功能,打出相关性能信息. 对几个map或reduce进行profiling. 非常影响速度,建议在小数据量上尝试. 1表示不reuse,-1表示无限reuse,其他数值表示每个jvm reuse次数. reuse的时候,map结束时不会释放内存.

MapReduce - 性能调优

- - CSDN博客云计算推荐文章
        Hadoop为用户作业提供了多种可配置的参数,以允许用户根据作业特点调整这些参数值使作业运行效率达到最优.         对于一大批MapReduce程序,如果可以设置一个Combiner,那么对于提高作业性能是十分有帮助的. Combiner可减少Map Task中间输出的结果,从而减少各个Reduce Task的远程拷贝数据量,最终表现为Map Task和Reduce Task执行时间缩短.

Java 性能调优

- - 编程语言 - ITeye博客
1.用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用. 但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法. clone()方法不会调用任何类构造函数. 在使用设计模式(Design Pattern)的场合,如果用Factory模式创建对象,则改用clone()方法创建新的对象实例非常简单.