MYSQL教程之MySQL数据库功能优化的关头参数
“通过有能力的DBA的一个简单计划,MySQL可以达到令人难以想像的运行速度,”一位资深DBA如此表示。MySQL中没有多余的功能来拖累CPU或占用内存。MySQL功能优化触及到良多方面,本文就一些MySQL中的关头参数举行讲授,这些参数在必定水平上是决意MySQL数据库的功能关头参数。 我们在举行数据库办理和开辟中常常会碰到功能成绩,这就触及到MySQL的功能优化。经由过程在收集上查找材料和笔者本人的实验,我以为以下体系参数是对照关头的:关头参数一:back_log
请求MySQL能有的毗连数目。当次要MySQL线程在一个很短工夫内失掉十分多的毗连哀求,这就起感化,然后主线程花些工夫(只管很短)反省毗连而且启动一个新线程。
back_log值指出在MySQL临时中断回覆新哀求之前的短工夫内几个哀求能够被存在仓库中。只要假如希冀在一个短工夫内有良多毗连,你必要增添它,换句话说,这值对到来的TCP/ip毗连的侦听行列的巨细。你的操纵体系在这个行列巨细上有它本人的限定。试图设定back_log高于你的操纵体系的限定将是有效的。
当你察看你的主机历程列表,发明大批264084|unauthenticateduser|xxx.xxx.xxx.xxx|NULL|Connect|NULL|login|NULL的待毗连历程时,就要加年夜back_log的值了。默许数值是50,我把它改成500。
关头参数二:interactive_timeout
服务器在封闭它前在一个交互毗连上守候举动的秒数。一个交互的客户被界说为对mysql_real_connect()利用CLIENT_INTERACTIVE选项的客户。默许数值是28800,我把它改成7200。
关头参数三:key_buffer_size
索引块是缓冲的而且被一切的线程共享。key_buffer_size是用于索引块的缓冲区巨细,增添它可失掉更优点理的索引(对一切读和多重写),到你能包袱得起那样多。假如你使它太年夜,体系将入手下手换页而且真的变慢了。默许数值是8388600(8M),我的MySQL主机有2GB内存,以是我把它改成402649088(400MB)。
关头参数四:max_connections
同意的同时客户的数目。增添该值增添mysqld请求的文件形貌符的数目。这个数字应当增添,不然,你将常常看到Toomanyconnections毛病。默许数值是100,我把它改成1024。
关头参数五:record_buffer
每一个举行一个按次扫描的线程为其扫描的每张表分派这个巨细的一个缓冲区。假如你做良多按次扫描,你大概想要增添该值。默许数值是131072(128K),我把它改成16773120(16M)
关头参数六:sort_buffer
每一个必要举行排序的线程分派该巨细的一个缓冲区。增添这值减速ORDERBY或GROUPBY操纵。默许数值是2097144(2M),我把它改成16777208(16M)。
关头参数七:table_cache
为一切线程翻开表的数目。增添该值能增添mysqld请求的文件形貌符的数目。MySQL对每一个独一翻开的表必要2个文件形貌符。默许数值是64,我把它改成512。
关头参数八:thread_cache_size
能够复用的保留在中的线程的数目。假如有,新的线程从缓存中获得,当断开毗连的时分假如有空间,客户的线置在缓存中。假如有良多新的线程,为了进步功能可以这个变量值。经由过程对照Connections和Threads_created形态的变量,能够看到这个变量的感化。我把它设置为80。
关头参数九:wait_timeout
服务器在封闭它之前在一个毗连上守候举动的秒数。默许数值是28800,我把它改成7200。
注:参数的调剂能够经由过程修正/etc/my.cnf文件偏重启MySQL完成。这是一个对照审慎的事情,下面的了局也仅仅是我的一些意见,你能够依据你本人主机的硬件情形(出格是内存巨细)进一步修正。
DBaaS并不意味着解决方案提供者要让自己失业。与其他系统一样,在实施DBaaS解决方案时,客户可能需要部署、迁移、支持、异地备份、系统集成和灾难恢复等方面的帮助。 一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。) 连做梦都在想页面结构是怎么样的,绝非虚言 另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程); 原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。 作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题! 我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过! 这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。 大家注意一点。如下面的例子:
页:
[1]