MySql优化--系统配置优化和硬件优化
来源:互联网 发布:java覆盖 编辑:程序博客网 时间:2024/05/16 14:00
数据库是基于操作系统的,目前大多装在linux上,所以操作系统的一些参数配置也会影响性能。
网络方面的配置:修改/etc/my.cnf
#增加TCP队列数
net.ipv4.tcp_max_syn_backlog = 65535
#减少断开连接时,资源回收
net.ipv4.tcp_max_tw_buckets = 8000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recyle = 1
net.ipv4.tcp_fin_timeout = 10
打开文件数的限制
ulimit -a 查看目录的限制
可以修改/ect/security/limits.conf,增加以下内容
soft nofile 65535
hard nofile 65535
除此之外,最好在MYSQL服务器上关闭iptables,selinux等防火墙软件。最好使用硬件防火墙,不要使用这种软件的防火墙。
MySql配置文件
linux -- my.cnf
windows -- my.ini
查看mysql配置文件顺序:
mysqld --verbose --help | grep -A 1 'Default options'
如果有多个配置文件,后面的会覆盖前面的。
常用参数说明:
innodb_buffer_pool_size: 用于配置innodb缓冲池,如果数据库中只有innodb表推荐配置为总内存的75%
注:查询所有引擎表的大小
SELECT ENGINE, ROUND(SUM(data_length+index_length)/1024/1024,1) AS "TOTAL MB", FROM INFORMATION_SCHEMA.TABLES WHERE table_schema no in ("information_schema,"performance_schema") group by ENGINE;
innodb_buffer_pool_size > TOTAL MB
innodb_buffer_pool_instance: 5.5中新增的参数,用于控制缓冲池的个数。默认只有一个缓冲池。该参数可增加并发性。
innodb_log_buffer_size: log 缓冲的大小,由于日志最长每秒就会刷新,所以不用太大。
innodb_flash_log_at_trx_commit: 数据库多长时间把变更刷新到磁盘。默认为1,每次更新就刷新。 0 表示每一秒刷新一次,2每一次提交刷新到缓冲区,每一秒由缓冲区提交到磁盘。 1最安全。 通常设为2,安全性和IO之间平衡。
innodb_read_io_threads
innodb_write_io_threads
决定了INNODB读写IO进程数,默认为4
innodb_file_per_table: 关键参数,控制innodb每一个表使用独立的表空间,默认为off,也就是所有的表会建立在共享表空间。
1. 共享表空间IO会出现瓶颈。2. 共享表空间不能主动收缩
建议设为ON, 分为多个文件,提高并发读写效率,同时可以快速回收表空间。
innodb_stats_on_metadata: 决定了什么情况下刷新innodb表的统计信息。
查询优化器选取哪个索引会使用到表的统计信息,通常情况下需要对表的统计信息进行刷新,但是刷新频率高的话会影响性能。
默认情况下,show create talbe,查询infomation下的信息时,会刷新统计信息,建议设为off,不让其自动刷新,而是找一个时间段统一的进行刷新。
第三方配置工具
Percon Configuration Wizard
https://tools.percona.com/wizard/
硬件优化
如何选择CPU?
1.mysql有一些工作只能用到单核CPU
2.MySQL5.5使用不超过32核CPU
DISK IO优化
RAID 0 : IO效果最好,多个磁盘连接成一个硬盘。
RAID 1:镜像。每组磁盘存储数据相同。
RAID 5:把多个硬盘合并成一个逻辑盘使用,建立奇偶校验信息。
一般使用RAID1+0: 既保证了安全性,也保证了磁盘的存储效率
SNA和NAT是否适合数据库?
1.常用于高可用解决方案
2.顺序读写效率高,随机读写不如人意
3.数据库随机读写比率高
- MySql优化--系统配置优化和硬件优化
- mysql数据库优化之系统配置优化及硬件优化
- MySQL性能优化五之系统配置优化和服务器硬件优化
- Mysql性能优化----SQL语句优化、索引优化、数据库结构优化、系统配置优化、服务器硬件优化
- MySQL系统配置优化
- mysql服务器优化和硬件优化
- MySQL操作系统和硬件优化
- mysql优化硬件和操作系统
- mysql 硬件环境优化
- mysql硬件优化
- MySQL优化之一--硬件和操作系统
- MySQL数据库性能优化之硬件优化
- MySQL性能优化之硬件优化
- MySQL数据库性能优化之硬件优化
- PostgreSQL系统配置优化
- Greenplum优化--系统配置篇
- 30.系统配置优化
- Greenplum系统配置优化
- edge中断分析
- seajs的使用方法个人总结
- 黑马程序员 第二篇 Java 基础 多线程 (Foundation; completed)
- zepto使用中的一些注意点
- 《JAVA 核心技术 基础知识》第三章 笔记
- MySql优化--系统配置优化和硬件优化
- hasse数列
- busybox的作用和功能
- QT 环境的搭建
- 发送邮件
- java学习之旅64--常用类_自动装箱和拆箱_缓存处理
- OpenCV Access pixel value
- 关于cocoapods一些错误的解决问
- Android Studio 初体验,从Eclipse到AS