• 微信:
  • hai764003
  • QQ:
  • 511211014
  • E-mail:
  • jaquery@163.com

案例总数51

访问总数312390

收藏总数310921

MySQL数据库优化返回列表

上传时间:2015-02-02 内容关键字:MySQL数据库优化


一、网络方面的配置:

LINUX系统下:


要修改/etc/sysctl.conf文件

#增加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_recycle = 1

net.ipv4.tcp_fin_timeout=10


打开文件数的限制,可以使用ulimit -a查看目录的各位限制,可以修改/etc/security/limits.conf文件, 增加以下内容以修改打开文件数量的限制

*soft nofile 65535

*hard nofile 65535


除此之外最好在MySQL服务器上关闭iptables,selinux等防火墙软件。



二、MySQL配置文件:


MySQL可以通过启动时指定配置参数和使用配置文件两种方法进行配置,在大数情况下配置文件位于/etc/my.cnf或是/etc/mysql/my.cnfwindows系统配置文件可以使位于C:/windows/my.ini文件MySQL查找配置文件的顺序可以通过以下方法获得。


$ /usr/sbin/mysqld --verbose --pelp | grep -A 1 ‘Default options’


注意:如果多个位置存在配置文件,则后面的会覆盖前面的。


MySQL配置文件 -- 常用参数说明:


mysql.ini中:


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 not in

('information_schema','performance_schema')

GROUP BY ENGINE;


+--------+----------+

| ENGINE | Total MB |

+--------+----------+

| NULL   |     NULL |

| CSV    |      0.0 |

| InnoDB |      6.6 |

| MyISAM |      1.0 |

+--------+----------+


配置最小大小:innodb_buffer_pool_size >= Total MB 如果没存确实比较小,那么设置的尽量的大就OK了。


innodb_buffer_pool_instances


MySQL5.5中新增的参数,可以控制缓冲池的个数,默认情况下只有一个缓冲池。


innodb_log_buffer_size


innodb log缓冲的大小,由于日志最长每秒钟就会刷新所以一般不用太大。因为日志是先保 存到这个缓冲区中再提交到硬盘的。能够存下一秒钟内的事物就可以了。


innodb_flush_log_at_trx_commit


该参数决定了数据库多长时间把数据库的变更刷新到磁盘。


对于innodbIO效率影响很大,默认值为1,可以取0,1,2三个值,为了效率一般建议设为2,但如果数据安全性比较高则使用默认值。


0:每次变更时不刷新,只是每1秒钟刷新到磁盘一次。

1:把每一次变更刷新到磁盘,这是最安全的。

2:每次变更不刷新,而是缓冲到磁盘,然后每1秒钟再刷新到缓磁盘。


innodb_read_io_threads

innodb_wite_io_threads


以上两个参数决定了Innodb读写的IO进程数,默认值为4MySQL5.5以后可以根据服务器的内核数进行适当调整。到底是读多一些还是写一些。


innodb_file_per_table


控制Innodb每一个表使用独立的表空间,默认为OFF,也就是所有的表都会建立在共享表空间里。建议设为OFF,增减并发的读写效率。


innodb_stats_on_metadata


决定了MySQL在上面情况下会刷新innodb表的统计信息。建议设为OFF



 

小海哥推荐你看: 博客园  php教程分享网站  phpmywind  脚本之家