当前位置:七道奇文章资讯数据防范MySQL防范
日期:2011-05-02 15:44:00  来源:本站整理

从编译到工具:几种Mysql的优化办法[MySQL防范]

赞助商链接



  本文“从编译到工具:几种Mysql的优化办法[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
 

1、在编译时优化MySQL

假如你从源代码分发安装mysql,要注意,编译历程对今后的目标程序性能有重要的影响,差别的编译方法大概得到近似的目标文件,但性能大概相差很大,因此,在编译安装mysql适应细心按照你的利用范例挑选最大概好的编译选项.这种定制的mysql可认为你的利用供应最佳性能. 

本领:选用较好的编译器和较好的编译器选项,这样利用可提高性能10-30%.(mysql文档如是说) 

1.1、利用pgcc(pentium gcc)编译器

该编译器(http://www.goof.com/pcg/)针对运行在奔腾处理器系统上的程序举行优化,用pgcc编译mysql源代码,总体性能可提高10%.当然假如你的服务器不是用奔腾处理器,就没必要用它了,因为它是专为奔腾系统计划的. 

1.2、仅利用你想利用的字符集编译mysql

mysql目前供应多达24种差别的字符集,为环球用户以他们自己的语言插入或查看表中的数据.却省情形下,mysql安装全部者这些字符集,热但是,最好的挑选是指挑选一种你需求的.如,禁止除latin1字符集以外的全部别的字符集: 

------------------------------------------------------------------------------ 

%>./configure -with-extra-charsets=none [--other-configuration-options] 

------------------------------------------------------------------------------ 

1.3、将mysqld编译成静态履行文件

将mysqld编译成静态履行文件而无需同享库也能得到更好的性能.通过在配置时指定下列选项,可静态编译mysqld. 

------------------------------------------------------------------------------ 

%>./configure -with-mysqld-ldflags=-all-static [--other-configuration-options] 

------------------------------------------------------------------------------ 

1.4、配置样本

下列配置号令常用于提高性能: 

------------------------------------------------------------------------------ 

%>cflags="-o6 -mpentiumpro -fomit-frame-pointer" cxx=gcc cxxflags="-o6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared 

------------------------------------------------------------------------------ 

2、调整服务器

确保应用精确的编译当然重要,但这只是成功的第一步,配置众多的mysql变量一样对服务器的正常运行起关键作用.你可以将这些变量的赋值存在一个配置文件中,以确保它们在每次启动mysql时均起作用,这个配置文件就是my.cnf文件.

mysql已经供应了几个my.cnf文件的样本,可在/usr/local/mysqld/share/mysql/目录下找到.这些文件辨别命名为my-small.cnf、 my-medium.cnf、my-large.cnf和my-huge.cnf,规模阐明可在描写配置文件实用的系统范例标题中找到.假如在只有相当少内存的系统上运行mysql,并且只是无意的用一下,那么my-small.cnf会对比抱负,因为它号令mysqld只利用最少的资源.近似地,假如你筹划构建电子商务超市,并且系统拥有2g内存,那么你大概要用到mysql-huge.cnf文件了.为了操纵这些文件中的一个,你需求复制一个最合适需求的文件,改名为my.cnf.你可以挑选利用配置文件三种作用范围的一种:

global:将my.cnf文件复制到服务器的/etc目录下,这使得配置文件中的变量作用于全局,即对全部服务器上的mysql数据库服务器有效.

local:将my.cnf文件复制到[mysql-install-dir]/var/目录下,使得my.cnf作用于特定的服务器.[mysql-install-dir]表示mysql安装目录.

user:你可以再限制作用于特定的用户,将my.cnf复制到用户的根目录下.

毕竟若何设置my.cnf中的这些变量呢?更进一步说,你可以设置哪一个变量.固然所用变量对mysql服务器相对通用,每一个变量与mysql的的某些组件有更特定的关系.如变量max_connects归在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文件中的[mysqld]标题下插入变量设置. 

3、表范例

很多mysql用户大概很惊奇,mysql确切为用户供应5种差别的表范例,称为dbd、heap、isam、merge和myiasm.dbd归为事件安全类,而其他为非事件安全类. 

3.1、事件安全 

dbd 

berkeley db(dbd)表是支持事件处理的表,由sleepycat软件公司(http://www.sleepycat.com)开辟.它供应mysql用户等待已久的功效-事件掌握.事件掌握在任何数据库系统中都是一个极有代价的功效,因为它们确保一组号令能成功地履行. 

3.2、非事件安全 

heap 

heap表是mysql中存取数据最快的表.这是因为他们利用存储在动态内存中的一个哈希索引.另一个要点是假如mysql或服务器崩溃,数据将丧失. 

isam 

isam表是早期mysql版本的缺省表范例,直到myiasm开辟出来.倡议不要再利用它. 

merge 

merge是一个风趣的新范例,在3.23.25之后呈现.一个merge表实际上是一个相同myisam表的调集,归并成一个表,主如果为了效率缘由.这样可以提高速度、搜索效率、修复效率并节俭磁盘空间. 

myiasm 

这是mysql的缺省表范例.它基于iasm代码,但有很多有效的扩大.myiasm对比好的缘由: 

myiasm表小于iasm表,所以利用较少资源. 

myiasm表在差别的平台上二进制层可移植. 

更大的键码尺寸,更大的键码上限. 

3.3、指定表范例

你可在成立表时指定表的范例.下例成立一个heap表: 

--------------------------------------------------------------------

mysql>create table email_addresses type=heap ( 

->email char(55) not null, 

->name char(30) not null, 

->primary key(email) ); 

---------------------------------------------------------------------

bdb表需求一些配置工作,拜见http://www.mysql.com/doc/b/d/bdb_overview.HTML. 

3.4、更多的表范例

为了使mysql管理工作更风趣,行将公布的mysql 4.0将供应两种新的表范例,称为innobase和gemeni. 

4、优化工具

mysql服务器本身供应了几条内置号令用于帮忙优化. 

4.1、show 

你大概有爱好知道mysql服务器毕竟更了什么,下列号令给出一个总结: 

-----------------------------------

mysql>show status; 

-----------------------------------

它给出了一个相当长的状况变量及其值的列表.有些变量包含了非常终止客户的数目、非常终止衔接的数目、衔接尝试的次数、最大并发衔接数和大量其他有效的信息.这些信息对找出系统问题和低效极具代价. 

show还能做更多的事情.它可以显示关于日记文件、特定数据库、表、索引、进程和权限表中有代价的信息.详见mysql手册. 

4.2、explain 

当你面对select语句时,explain注释select号令若何被处理.这不但对决意能否应当增添一个索引,并且对决意一个复杂的join若何被mysql处理都是有帮忙的. 

4.3、optimize 

optimize语句答应你恢复空间和归并数据文件碎片,对包含变长行的表举行了大量更新和删除后,这样做分外重要.optimize目前只工作于myiasm和bdb表.

  以上是“从编译到工具:几种Mysql的优化办法[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 从编译到工具:几种Mysql的优化办法
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .