仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 641|回复: 6
打印 上一主题 下一主题

[学习教程] MYSQL教程之优化MYSQL服务器

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:34:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
那时候Sybase已经诞生了6年的时间。至于其他值得关注的开源数据库,PostgreSQL将在2009年达到20岁的生日。虽然MySQL并不是市场上最年轻的数据库,但是却有更多成熟的数据库可供我们选择。mysql|服务器|优化MySQL服务器有几个影响其操纵的参数(变量)。假如缺省的参数值分歧适,能够将其修正为对服务器运转情况更符合的值。比方,假如您有大批的内存,能够告知服务为磁盘和索引操纵利用较年夜的缓冲区。这将使内存持有更多的信息并削减了必需举行的磁盘会见的数
量。假如是一样平常的体系,能够告知服务器利用较小的缓冲区,以避免它侵扰体系资本伤害其他的历程。
体系变量确当前值能够经由过程实行mysqladminvariables命令来反省。变量可使用--set-variablevar_name=value选项在命令行设置(-ovar_name=value是等价的)。假如要想设置几个变量,可以使用多个--set-variable选项,还可使用以下语法在一个选项文件的[mysqld]组中设置变量:
set-variale=var_name=value
在附录E的mysql程序的条目下给出了服务器变量的全体清单。有关功能优化对照经常使用的变量已在以以下表中给出。您还能够在MySQL参考手册的“从MySQL中取得最高功能”一章中找到该主题的附加会商。
back_log引进的客户机毗连哀求的数目,这些哀求在从以后客户机中处置时列队。假如您有一个很忙的站点,能够增添该变量的值。
delayed_queue_size此变量把持被列队的INSERTDELAYED语句中的行数。假如该行列已满,则更多的INSERTDELAYED将梗塞,直到行列有空间为止,如许可避免公布那些语句的客户机持续举行操纵。假如您有很多实行这类INSERT的客户机,且发明它们正在梗塞,那末应增添该变量,使更多的客户机更快地举行事情(INSERTDELAYED在4.5节“调剂与锁定成绩”中会商)
flush_time假如体系有成绩而且常常锁逝世或从头引诱,应将该变量设置为非零值,这将招致服务器按flush_time秒来革新表的高速缓存。用这类办法来写出对表的修正将下降功能,但可削减表讹误或数据丧失的时机。
在Windows中,能够在命令行上用--flush选项启动服务器,以迫使表的修正在每次更新后被革新。
key_buffer_size用于寄存索引块缓冲区的巨细。假如增添该变量值,将加速创立和修正索引操纵的工夫。值越年夜MySQL就越有大概在内存中查找键值,这将削减索引处置所需的磁盘会见次数。
在MySQL3.23之前的版本中,该变量名为key_buffer。MySQL3.23及厥后的版本同时辨认这两个名字。
max_allowed_packet客户机通讯所利用的缓冲区巨细的最年夜值。假如有客户秘密发送大批的BLOB或TEXT的值,该服务器变量值大概必要增年夜。
客户机今朝利用巨细为24MB的缺省缓冲区。假如有利用较小缓冲区的旧客户机。大概必要使该客户机的缓冲区年夜一些。比方,mysql能够按以下挪用来指定一个24MB信息包的限定值:
mysql--set-varibalemax_allowed_packet=24M
max_connections服务器同意的客户机同时毗连的最年夜数目。假如服务器忙碌,大概必要增添该值。比方,假如您的MySQL服务器被Web服务器利用来处置由DBI或PHP剧本发生的查询,而且另有大批的Web通讯,假如该变量设置太低的话,则您站点的会见者会发明哀求被回绝。
table_cache表的高速缓存的巨细。增添该值可使mysqld坚持更多的表,同时翻开并削减必需举行的文件翻开和封闭操纵的次数。
假如增添了max_connections或table_cache值的巨细,服务器将必要大批的文件形貌符。这将引发有关操纵体系对文件形貌符总历程数目限制的成绩,在这类情形下您必要增添该限定值或慢慢办理它。因为增添文件形貌符数目的限定值,历程会产生变更,以是您大概会在一个运转剧本中利用ulimit命令时来如许做,该剧本可用于启动服务器,或用于从头设置您的体系。有些体系能够经由过程编纂体系形貌文件来复杂地设置和从头引诱。关于其他一些体系,则必需编纂一个内核形貌文件偏重建该内核。怎样持续举行下往,请参考您体系的文档。
办理总历程文件形貌符限定的一个办法是:将数据目次分别成多个数据目次并运转多个服务器。如许,经由过程运转多个服务器使可用的形貌符数目成倍增加。但另外一方面,其他的庞大要素大概会引发成绩。因为定名了两个服务器,您不克不及从一个单个的服务器上会见分歧数
据目次中的数据库,而且还必要在分歧服务器之间复制受权表的权限,以便用户必要会见一个以上的服务器。
有两个变量是办理员为进步功能经常增添的,它们是record_buffer和sort_buffer。这些缓冲区在毗连和分类操纵中利用,但其值是属于每一个毗连的。也就是说,每一个客户机都取得属于本人的缓冲区。假如使这些变量的值很年夜,功能大概会因为高贵的体系资本的损耗而蒙受实践的丧失。假如想要修正这些变量,先实行mysqladminvariables检察一下它们以后的值,然后增量调剂其值。这个操纵使您能估量为削减严峻的功能下降所举行的修正的效果。与其他数据库相比,MySQL易学易用。
深爱那片海 该用户已被删除
沙发
发表于 2015-1-19 16:30:55 | 只看该作者
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
蒙在股里 该用户已被删除
板凳
发表于 2015-1-27 07:54:09 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
莫相离 该用户已被删除
地板
发表于 2015-2-5 04:38:40 | 只看该作者
无法深入到数据库系统层面去了解和探究
海妖 该用户已被删除
5#
发表于 2015-2-11 04:54:36 | 只看该作者
我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!
灵魂腐蚀 该用户已被删除
6#
发表于 2015-3-1 21:53:47 | 只看该作者
在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。
兰色精灵 该用户已被删除
7#
发表于 2015-3-17 17:08:43 | 只看该作者
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 10:57

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表