mysql服务器优化技巧

作者: jaclon 分类: 数据库 发布时间: 2010-12-22 08:57 ė 6没有评论

mysql优化可以分为以下几种:

1.硬件优化。这个不用多说大家都知道,无非是cup、硬盘、内存等方面

2.sql查询优化。

  • 创建合理的表结构。
  • 使用合理的数据类型。
  • 建立索引。

3.mysql优化配置

记录查询速度慢的语句

想要提高查询速度,就要问题出在哪里,mysql中提供了一个记录查询速度慢的语句功能。通过这个功能我们可以知道哪些sql语句查询速度比较慢,是否有优化空间,然后进行调整。下面是配置方法:

[mysqld]
; enable the slow query log, default 10 seconds
log-slow-queries
; log queries taking longer than 5 seconds
long_query_time = 5
; log queries that don't use indexes even if they take less than long_query_time
; MySQL 4.1 and newer only
log-queries-not-using-indexes

这三个设置一起使用,可以记录执行时间超过 5 秒和没有使用索引的查询。请注意有关 log-queries-not-using-indexes 的警告:您必须使用 MySQL 4.1 或更高版本。慢速查询日志都保存在 MySQL 数据目录中,名为 hostname-slow.log。如果希望使用一个不同的名字或路径,可以在 my.cnf 中使用 log-slow-queries = /new/path/to/file 实现此目的。

阅读慢速查询日志最好是通过 mysqldumpslow 命令进行。指定日志文件的路径,就可以看到一个慢速查询的排序后的列表,并且还显示了它们在日志文件中出现的次数。一个非常有用的特性是 mysqldumpslow 在比较结果之前,会删除任何用户指定的数据,因此对同一个查询的不同调用被计为一次;这可以帮助找出需要工作量最多的查询。

对查询进行缓存

MySQL 有一个特性称为查询缓存,它将查询结果保存在内存中。在很多情况下,这会极大地提高性能。在配置文件中设置query_cache_size=32M,表示设置查询缓存为32M,当然你可以设的更高,主要根据数据查询及服务器情况而定

限制数据库连接数及超时时间

max_connections=500 允许最大连接数
wait_timeout=10 超时时间

其他设置

key_buffer_size
该变量控制索引缓冲可以使用的内存数量。这个值越高,索引可以使用的内存越多,性能就越好。一般情况下,可以保持这个值在服务器可以使用的内存的25%-30%。

table_cache
该变量控制表高速缓存可以使用的内存数量,以及在同一时间内MYSQL可以处理表的打开总量。 对于有许多数据库和表并且非常繁忙的Server来说,应该增加这个值。

read_rnd_buffer_size
增加该变量有利于提高ORDER BY 或 GROUP BY的速度

read_buffer_size
增加该变量的值,将提高SELECT的查询速度

本文出自 肥蕉博客@IT技术,热门话题,生活随笔,美图欣赏,转载时请注明出处及相应链接。

本文永久链接: http://www.bananawolf.com/html/2010/12/144.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

Ɣ回顶部