|
| |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
许多新手往往把重新编译源代码看成是一种无可避免的灾祸,其实编译源代码还能对程序的最终性能起到显著的影响。编译过程可以用不同流水线上装配同样型号的汽车比拟:第一条流水线由素质较低的工人操作,装配程序未能尽善尽美,零件装配误差较大;第二条流水线由高素质的技术工人操作,汽车装配程序合理,且利用最好的工具保证产品的高质量。虽然两条流水线上装配出来的汽车外观一模相同,但两种汽车的性能表现却可能大不一样。对于编译器来说情况也完全相似,有些编译器装配出来的程序要比其他编译器的更好。 编译时考虑所有可用的选项也是极其重要的。很可能某些编译器的默认选项值不能符合要求,或者,为了满意应用的特定需求,我们需要指定一些特别的编译选项。正如MySQL文档所指出的,只要采用了更好的编译器或者使用更合理的编译选项,应用性能的提高程度可以达到10-30%。 既然如此,编译时详细应该注重哪些问题才能让MySQL数据库运行得更快呢? ▲ 使用pgcc编译器 假如系统使用的是奔腾处理器,那么pgcc(Pentium GCC)正是为这些系统下运行的程序提供的专用编译器。pgcc是gcc编译器(http://www.gnu.org/software/gcc/)的奔腾优化版,用pgcc编译MySQL代码可以让整体性能提高10%以上!关于pgcc的更多信息,请参见http: //www.goof.com/pcg/。当然,假如系统使用的不是奔腾处理器,采用这种方式提高MySQL的运行速度就不合适了,因为正如其名字所示, pgcc是专门为奔腾系统提供的。 ▲ 把mysqld编译成静态模式 以不带共享库的形式编译mysqld同样可以提高性能。在配置行加入下面这个选项可以将mysqld编译成静态模式: % >./configure -with-mysqld-ldflags=-all-static [--其他配置选项] ▲ 配置示例 下面的配置命令常常用于提高MySQL的性能: % >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 具体解释每个gcc选项的作用已经超出了本文的范围,请访问gcc的说明文档了解这些信息(http://gcc.gnu.org/)。注重不要拘泥于这个例子,请在命令行执行man gcc仔细了解每一个gcc选项的含义。 准确的编译方式固然重要,但它只是提高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文件复制到[MYSQL-INSTALL-DIR]/var/将使该文件只对指定的服务器有效,其中[MYSQL-INSTALL-DIR]表示安装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文件[mysqld]小节加上一个set-variable指令,详细请参见配置文件中的示例。 返回类别: 教程 上一教程: 跟我学SQL:(五)创建和修改表格 下一教程: SQL语言迅速入门(一) 您可以阅读与"MYSQL性能优化全攻略"相关的教程: · MYSQL性能优化全攻略-服务器参数调整 · MYSQL优化全攻略-服务器参数调整 · 对拥有一个几十万行表的 MYSQL 性能优化的简朴办法 · ASP使用MYSQL数据库全攻略 · SQLServer数据库安全规划全攻略 |
| 快精灵印艺坊 版权所有 |
首页 |
||