Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103728966
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Mysql/postgreSQL

2008-05-12 21:36:48

 来源:

导读

   数据库性能优化涉及到系统硬件和软件的方方面面,本文讨论的主要是编译和配置优化、服务器参数调整、如何选用合适的表类型,以及如何用数据库内建的命令辅助和优化性能,特别是如何用EXPLAIN辅助优化查询的性能。 原文出处:http://www.devshed.com/Server_Side/MySQL/Optimize/

   许多新手往往把重新编译源代码看成是一种无可避免的灾祸,其实编译源代码还能对程序的最终性能起到显著的影响。编译过程可以用不同流水线上装配同样型号的汽车比拟:第一条流水线由素质较低的工人操作,装配程序未能尽善尽美,零件装配误差较大;第二条流水线由高素质的工人操作,汽车装配程序合理,且利用最好的工具保证产品的高质量。虽然两条流水线上装配出来的汽车外观一模一样,但两种汽车的性能表现却可能大不相同。对于编译器来说情况也完全相似,有些编译器装配出来的程序要比其他编译器的更好。

   编译时考虑所有可用的选项也是极其重要的。很可能某些编译器的默认选项值不能符合要求,或者,为了满足应用的特定需求,我们需要指定一些特殊的编译选项。正如MySQL文档所指出的,只要采用了更好的编译器或者使用更合理的编译选项,应用性能的提高程度可以达到10-30%。

   既然如此,编译时具体应该注意哪些问题才能让MySQL数据库运行得更快呢?

   ▲ 使用pgcc编译器

   如果系统使用的是奔腾处理器,那么pgcc(Pentium GCC)正是为这些系统下运行的程序提供的专用编译器。pgcc是gcc编译器()的奔腾优化版,用pgcc编译MySQL代码可以让整体性能提高10%以上!关于pgcc的更多,请参见。当然,如果系统使用的不是奔腾处理器,采用这种方法提高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的说明文档了解这些信息()。注意不要拘泥于这个例子,请在命令行执行man gcc仔细了解每一个gcc选项的含义。
阅读(426) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~