WEB开发网
开发学院数据库MySQL MySQL数据库优化(一) 阅读

MySQL数据库优化(一)

 2008-06-06 11:04:47 来源:WEB开发网   
核心提示: 都支持什么字段类型 支持多少索引 支持什么样的函数 能支持多大的查询 VARCHAR 字段类型能支持多大可以从 http://dev.mysql.com/tech-resources/crash-me.php 上找到各种不同数据库 crash-me 的结果,更多的信息请访问 http://

都支持什么字段类型

支持多少索引

支持什么样的函数

能支持多大的查询

VARCHAR 字段类型能支持多大

可以从 http://dev.mysql.com/tech-resources/crash-me.php 上找到各种不同数据库 crash-me 的结果。更多的信息请访问 http://dev.mysql.com/tech-resources/benchmarks。

1.5 使用您自己的基准

请确定对您的数据库或者应用程序做基准测试,以发现它们的瓶颈所在。解决这个瓶颈(或者使用一个假的模块来代替)之后,就能很容易地找到下一个瓶颈了。即使应用程序当前总体的表现可以接受,不过还是至少要做好找到每个瓶颈的计划,说不定某天您就希望应用程序能有更好的性能。

从MySQL的基准套件中就能找到一个便携可移植的基准测试程序了。详情请看"7.1.4 The MySQL Benchmark Suite"。您可以从基准套件中的任何一个程序,做适当的修改以适合您的需要。通过整个方式,您就可以有各种不同的办法来解决问题,知道哪个程序才是最快的。

另一个基准套件是开放源码的数据库基准,可以在 http://osdb.sourceforge.net 上找到。

当系统负载十分繁重的时候,通常就会发生问题。我们就有很多客户联系我们说他们有一个(测试过的)生产系统也遭遇了负载问题。在很多情况下,性能问题归结于数据库的基本设计(例如,在高负载下扫描数据表的表现不好)、操作系统、或者程序库等因素。很多时候,这些问题在还没有正式用于生产前相对更容易解决。

为了避免发生这样的问题,最好让您的应用程序在可能的最差的负载下做基准测试!可以使用Super Smack,在 http://jeremy.zawodny.com/mysql/super-smack 可以找到。从它名字的意思就能想到,只要您愿意,它就能让您的系统死掉,因此确认只在开发系统上做测试。

2 优化 SELECT 语句及其他查询

首先,影响所有语句的一个因素是:您的权限设置越复杂,那么开销就越大。

使用比较简单的 GRANT 语句能让MySQL减少在客户端执行语句时权限检查的开销。例如,如果没有设定任何表级或者字段级的权限,那么服务器就无需检查 tables_priv 和 columns_priv 表的记录了。同样地,如果没有对帐户设定任何资源限制的话,那么服务器也就无需做资源使用统计了。如果有大量查询的话,花点时间来规划简单的授权机制以减少服务器权限检查的开销是值得的。

如果问题处在一些MySQL特定的表达式或者函数上,则可以通过 mysql 客户端程序使用 BENCHMARK() 函数做一个定时测试。它的语法是:BENCHMARK(loop_count,expression)。例如:

mysql> SELECT BENCHMARK(1000000,1+1);
+------------------------+
| BENCHMARK(1000000,1+1) |
+------------------------+
|           0 |
+------------------------+
1 row in set (0.32 sec)

上述结果是在Pentium II 400MHz的系统上执行得到的。它告诉我们:MySQL在这个系统上可以在0.32秒内执行 1,000,000 次简单的加法运算。

所有的MySQL函数都应该被最优化,不过仍然有些函数例外。BENCHMARK() 是一个用于检查查询语句中是否存在问题的非常好的工具。

上一页  1 2 3 4 5 6 

Tags:MySQL 数据库 优化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接