博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql基础调优
阅读量:6412 次
发布时间:2019-06-23

本文共 1921 字,大约阅读时间需要 6 分钟。

 

问一个基础的问题--如果你有一个16G内存的服务器,专用于mysql大型的Innodb数据库.应该做什么样的设置?

 

硬件

如果你的Innodb数据库很大,内存是首要的.16-32G现在很便宜了.CPU方面 2个双核的core 就非常好了.但是这跟应用也有很大的关系.第三是IO系统-DAS和RAID是很好的选择.一般来说6-8块硬盘就够了,有时可能需要更多.而且新的2.5"的SAS硬盘,小却速度快.RAID10对于数据存储和主要是读的场合下十分好.需要冗余性的话RAID5也不错但注意对于RAID5的随机写操作.

 

操作系统

首先 运行64位的操作系统.现在还有很多32位的系统带着很大的内存运行着.建议不要这么做.如果系统是linux,对数据库的目录使用LVM可以获得更高效的备份.ext3文件系统大部分情况下都不会出问题,如果碰到问题的话,试试XFS.如果你使用innodb_file_per_table而且表很多的话可以使用noatime和nodiratime选项,但是这样做效果不是很大.Also make sure you wrestle OS so it would not swap out MySQL out of memory.

(最后这句话不知道该如何翻译)

 

MYSQL 的Innodb 设置

最重要的地方有:

innodb_buffer_pool_size设为内存的70%-80%都是安全的.我在一个16G的机器上把它设成12G.

UPDATE关于它具体的查看[url]http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/[/url]

innodb_log_file_size 这取决于你需要的回复速度.256M这个数值是适当的恢复时间和良好性能之间的一个好的平衡.

innodb_log_buffer_size=4M大多数情况4M足够,除非正将很大的blob数据导入到Innodb中可以增加一点.

innodb_flush_log_at_trx_commit=2如果你不是很关心ACID,可以容许在系统完全crash的情况下丢失最后一两秒的事务,那么可以设置这个值.它可以极大的提高"短"的写事务的效率.

innodb_thread_concurrency=8这个值取决于你的程序,可能高或者低.8是代表起始值.

innodb_flush_method=O_DIRECT避免双缓冲(double buffering)和降低swap的压力.大多数情况下可以提高性能.但是注意如果你RAID cache不够的话,写IO的操作会有麻烦.

innodb_file_per_table如果你的表不多可以使用这个选项.这样你就不会有不受控的innodb主表空间的增长,这个主表空间是不能重新定义的.这个选项在4.1版中引入,现在可以放心使用.

 

查看你的程序是否可以运行在READ-COMMITED 隔离模式下,如果可以,就可以设为默认的transaction-isolation=READ-COMMITTED.这个选项有一些性能的优势,特别是在5.0,5.1版和行级别的复制方面.

 

其他的可以参考[url]http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/[/url]和[url]http://www.mysqlperformanceblog.com/mysql-performance-presentations/[/url]

 

应用程序的优化

如果原来是MyISAM,现在你可能需要对应用做一些修改.首先确保你在进行数据库更新的时候使用事务,这对数据一致性和性能都有好处.

其次如果你的应用有写操作的话要注意处理死锁问题.

第三你要重新检视你的表结构,尽可能利用Innodb的优势--主键的群集(clustering by primary key),在所有的索引里面有主键,让主键简单.使用主键来快速查询(在连接中使用),large unpacked indexes (try to be easy on indexes).

 

使用这些基本的innodb性能优化技术,你就会比一般按照默认配置来运行mysql用户上了一个层次.

本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1586219,如需转载请自行联系原作者
你可能感兴趣的文章
IO输入/输出流的简单总结
查看>>
JavaScript之DOM-9 HTML DOM(HTML DOM概述、常用HTML DOM对象、HTML表单)
查看>>
技术成长之路(一)
查看>>
中国北方国际五金城硬件选型
查看>>
php.exe启动时提示缺少MVCR110.dall 64位 window系统 解决
查看>>
判断是否为数字方法
查看>>
[翻译] EF Core in Action 关于这本书
查看>>
js Uncaught TypeError: undefined is not a function
查看>>
数据库存储引擎
查看>>
[2019.2.13]BZOJ4318 OSU!
查看>>
版本号带两个小数点的,如何比较大小?( NSStringCompareOptions )
查看>>
QCustomplot使用分享(三) 图
查看>>
什么是java?
查看>>
WPF路径动画(动态逆向动画)
查看>>
Low Level Reader Protocol (LLRP) 简介
查看>>
[Micropython]TPYBoard v10x NRF24L01无线通讯模块使用教程
查看>>
mysql中show processlist过滤和杀死线程
查看>>
最新Sublime Text 2 激活 汉化
查看>>
基础数据类型之字典
查看>>
第七次作业
查看>>