简单生活 发表于 2015-2-16 00:23:12

发一篇MySQL优化全攻略-办事器参数调剂

MySQL已经为支持所有最流行的Web 2.0语言做好了准备,诸如Ruby、Ajax等,当然还有PHP。有的业界分析师说过,“每一个Web 2.0公司实质上就是一个数据库公司。准确的编译办法当然主要,但它只是进步MySQL办事器功能任务的一局部。MySQL办事器的很多参数会影响办事器的功能体现,并且咱们可以把这些参数保留到设置装备摆设文件,使得每次MySQL办事器启动时这些参数都主动发扬感化。这个设置装备摆设文件就是my.cnf。

   MySQL办事器供应了my.cnf文件的几个示例,它们可以在/usr/local/mysql/share/mysql/目次下找到,名字分离为my-small.cnf、my-medium.cnf、my-large.cnf和my-huge.cnf。文件名字中关于范围的申明描写了该设置装备摆设文件合用的体系类型。例如,假如运转MySQL办事器的体系内存不多,并且MySQL只是偶然利用,那末利用my-small.cnf设置装备摆设文件最为幻想,这个设置装备摆设文件告知mysqld daemon利用起码的体系资本。反之,假如MySQL办事器用于撑持一个大范围的在线商场,体系具有2G的内存,那末利用mysql-huge.cnf最为适合。

   要利用上述示例设置装备摆设文件,咱们应当先复制一个最合适请求的设置装备摆设文件,并把它定名为my.cnf。这个复制失掉的设置装备摆设文件可以依照以下三种体例利用:

全局:把这个my.cnf文件复制到办事器的/etc目次,此时文件中所界说的参数将全局无效,即对该办事器上运转的一切MySQL数据库办事器都无效。
部分:把这个my.cnf文件复制到/var/将使该文件只对指定的办事器无效,个中暗示装置MySQL的目次。
用户:最初,咱们还可以把该文件的感化局限局限到指定的用户,这只需把my.cnf文件复制到用户的根目次便可。
   那末,若何设置my.cnf文件中的参数呢?或进一步说,哪些参数是咱们可以设置的呢?一切这些参数都对MySQL办事器有着全局性的影响,但同时每个参数都和MySQL的特定局部关系较为亲切。例如,max_connections参数属于mysqld一类。那末,若何才干得知这一点呢?这只需履行以下号令:


% >/usr/local/mysql/libexec/mysqld --help

   


   该号令将显示出和mysqld有关的各类选项和参数。要寻觅这些参数十分便利,由于这些参数都在“Possible variables for option --set-variable (-O) are”这行内容的前面。找到这些参数以后,咱们就能够在my.cnf文件中依照以下体例设置一切这些参数:


set-variable = max_connections=100

   


   这行代码的后果是:同时毗连MySQL办事器的最大毗连数目限制为100。不要忘了在my.cnf文件大节加上一个set-variable指令,详细请拜见设置装备摆设文件中的示例通过支付一定费用,客户可以得到优先的24/7支持,访问内容丰富的在线知识库和联系一个专门的技术负责经理。

乐观 发表于 2015-2-16 00:35:42

一个是把SQL语句写到客户端,可以使用DataSet进行加工;

老尸 发表于 2015-2-16 04:30:10

但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。

蒙在股里 发表于 2015-2-17 07:50:19

如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.

愤怒的大鸟 发表于 2015-3-12 10:43:48

多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。

因胸联盟 发表于 2015-3-13 11:50:33

分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。

admin 发表于 2015-3-19 20:39:12

原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!

谁可相欹 发表于 2015-4-1 04:36:33

我个人认为就是孜孜不懈的学习

简单生活 发表于 2015-4-15 01:28:27

SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)

爱飞 发表于 2015-4-17 21:57:55

是要和操作系统进行Socket通讯的场景。否则建议慎重!

再见西城 发表于 2015-4-18 05:38:31

如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.

变相怪杰 发表于 2015-4-21 12:09:47

学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!

冷月葬花魂 发表于 2015-4-24 08:20:37

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?

再现理想 发表于 2015-4-25 04:11:23

然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情

灵魂腐蚀 发表于 2015-5-4 14:15:37

其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。

兰色精灵 发表于 2015-5-4 20:22:56

如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。

小女巫 发表于 2015-5-6 04:09:59

我们学到了什么?思考问题的时候从表的角度来思考问

精灵巫婆 发表于 2015-5-7 17:46:24

可以动态传入参数,省却了动态SQL的拼写。

第二个灵魂 发表于 2015-5-8 14:22:38

如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。

分手快乐 发表于 2015-6-20 21:18:55

记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
页: [1] 2
查看完整版本: 发一篇MySQL优化全攻略-办事器参数调剂