Chinaunix首页 | 论坛 | 博客
  • 博客访问: 424882
  • 博文数量: 137
  • 博客积分: 5190
  • 博客等级: 大校
  • 技术积分: 997
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-21 16:19
文章存档

2011年(17)

2010年(120)

我的朋友
2

分类: Mysql/postgreSQL

2010-02-27 15:59:44

六、优化应用

  应该集中精力解决问题。

  在编写应用时,应该决定什么是最重要的:

  速度

  操作系统间的可移植性

  SQL服务器间的可移植性

  使用持续的连接。.

  缓存应用中的数据以减少SQL服务器的负载。

  不要查询应用中不需要的列。

  不要使用SELECT * FROM table_name...

  测试应用的所有部分,但将大部分精力放在在可能最坏的合理的负载下的测试整体应用。通过以一种模块化的方式进行,你应该能用一个快速“哑模块”替代找到的瓶颈,然后很容易地标出下一个瓶颈。

  如果在一个批处理中进行大量修改,使用LOCK TABLES。例如将多个UPDATES或DELETES集中在一起。

  七、应该使用可移植的应用

  Perl DBI/DBD

  ODBC

  JDBC

  Python(或其他有普遍SQL接口的语言)

  你应该只使用存在于所有目的SQL服务器中或可以很容易地用其他构造模拟的SQL构造。上的Crash-me页可以帮助你。

  为操作系统/SQL服务器编写包装程序来提供缺少的功能。

  八、如果你需要更快的速度,你应该:

  找出瓶颈(CPU、磁盘、内存、SQL服务器、操作系统、API或应用)并集中全力解决。

  使用给予你更快速度/灵活性的扩展。

  逐渐了解SQL服务器以便能为你的问题使用可能最快的SQL构造并避免瓶颈。

  优化表布局和查询。

  使用复制以获得更快的选择(select)速度。

  如果你有一个慢速的网络连接数据库,使用压缩客户/服务器协议。

  不要害怕时应用的第一个版本不能完美地移植,在你解决问题时,你总是可以在以后优化它。

  九、优化MySQL

  挑选编译器和编译选项。

  位你的系统寻找最好的启动选项。

  通读MySQL参考手册并阅读Paul DuBios的《MySQL》一书。(已有中文版-译注)

  多用EXPLAIN SELECT、SHOW VARIABLES、SHOW STATUS和SHOW PROCESSLIST。

  了解查询优化器的工作原理。

  优化表的格式。

  维护你的表(myisamchk、CHECK TABLE、 OPTIMIZE TABLE)

  使用MySQL的扩展功能以让一切快速完成。

  如果你注意到了你将在很多场合需要某些函数,编写MySQL UDF函数。

  不要使用表级或列级的GRANT,除非你确实需要。

  购买MySQL技术支持以帮助你解决问题:)

  十、编译和安装MySQL

  通过位你的系统挑选可能最好的编译器,你通常可以获得10-30%的性能提高。

  在Linux/Intel平台上,用pgcc(gcc的奔腾芯片优化版)编译MySQL。然而,二进制代码将只能运行在Intel奔腾CPU上。

  对于一种特定的平台,使用MySQL参考手册上推荐的优化选项。

  一般地,对特定CPU的原生编译器(如Sparc的Sun Workshop)应该比gcc提供更好的性能,但不总是这样。

  用你将使用的字符集编译MySQL。

  静态编译生成mysqld的执行文件(用--with-mysqld-ldflags=all-static)并用strip sql/mysqld整理最终的执行文件。

  注意,既然MySQL不使用C++扩展,不带扩展支持编译MySQL将赢得巨大的性能提高。

  如果操作系统支持原生线程,使用原生线程(而不用mit-pthreads)。

  用MySQL基准测试来测试最终的二进制代码。

阅读(833) | 评论(0) | 转发(0) |
0

上一篇:1

下一篇:3

给主人留下些什么吧!~~