这里是我自己整理的一些资料,大家不懂的可以相互学习呀。。。

mysql 优化

Mysql ZZT 1175次浏览 已收录 0个评论

转载:
mysql数据库设计总结

优化思想:

网络配置篇:

1、 关闭DNS解析

[mysqld]
skip-name-reslove

2、 避免跨数据中心的实时操作,(减少master和slave不同网段的配置)
3、 调整内核参数:
扩大ip_local_port_range容纳更多链接
tcp_max_syn_backlog
tcp_fin_timeout 数据库TCP链接完成请求后等待超时时间,适当降低时间,可以释放端口使用。

合理部署文件

1、独立配置存储二进制的文件和innodb事务日志。(分流I/O)
2、在逻辑卷上存储数据。
3、没要的情况下不要源码编译安装mysql。(不利于自动化管理,分布式不利于逐一安装)

MySQL性能分析工具

1、MySQL Enterprise Monitor (分析数据库不同时间段的负载情况,需要付费)
2、innotop
3、mysqlreport

合理配置mysql配置文件

1、定位my.cnf 配置文件
mysql --verbose --help | grep -A l "Default options"
2、created_tmp_table的比值按比例小于5%比较合适。

inndodb缓冲池的作用。

1、innodb_fast_shutdown = 0/1/2(关闭缓冲池的关闭,在mysql关闭时将缓冲池的数据写入mysql中)
2、innodb_buffer_pool_size 设置缓冲池的大小。
3、第一次打开表的时候会发生很多I/O信息,mysql默认打开这个预热操作,保存10秒。
innodb_stats_persistent=on(这个是持久化信息)
innodb_stats_on_metadata=off(这个是触发性的更新)
4、innodeb_file_per_table(分散I/O读写压力,但是会造成读写空间的浪费)
5、打开双写缓存(行级锁将会被行级版本取代,mysql内部根据算法确定最后一个更新的版本写入数据)
innodb_purge_threads=1(双写缓冲回收线程数量)
innodb_purge_batch_size-300(回收缓存大小)
innodb_doublewrite=ON
6、expire_logs_days = 7 mysql保存7天的日志记录,清除过期日志

数据库软操作优化MySQL

1、开启慢查询日志和通用查询日志

log=sql.lo
slow_query_log=on 开启慢查询
slow_query_log_file=slow.log 慢查询日志位置
long_query_time=2 慢查询时间限制
long_queries_no_using_indexs 没有响应的查询也记录下来
min_examined_row_limit=1000 多余1000行的也记录下来查询记录

2、mysql慢查询工具
1、mysqldumpslow
2、mysqlsla
3、percona-toolkit中的pt-query-digest
4、mysql Enterprise Monitor中的mysql query Analyzer


乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql 优化
喜欢 (0)

文章评论已关闭!