WEB开发网
开发学院数据库MySQL MySQL查询优化-Admin 阅读

MySQL查询优化-Admin

 2007-02-13 10:53:59 来源:WEB开发网   
核心提示: 例如,为了激活查询缓存并为它分配16MB内存,MySQL查询优化-Admin(6),在配置文件中使用下面的设置:[mysqld]query_cache_type=1query_cache_size=16M即使query_cache_type的值设置为零,query_cache_size指定

例如,为了激活查询缓存并为它分配16MB内存,在配置文件中使用下面的设置:

[mysqld]

query_cache_type=1

query_cache_size=16M

即使query_cache_type的值设置为零,query_cache_size指定内存数量也会被分配。为了避免浪费内存,只有在希望激活缓存的时候才把大小设置成大于零。同时,即使query_cache_type不为零,查询缓存的大小设置为零也会禁用缓存。

使用了查询缓存的独立客户端会在服务器的默认缓存模式状态下操作。客户端可以使用下面的语句改变自己的查询的默认缓存模式:

SET query_cache_type = val;

其中的val可以是0、1或2,它的意义与设置服务器启动时的query_cache_type变量的意义是相同的。在SET语句中,OFF、ON和DEMAND这些符号值与0、1和2对应。

客户端还可以通过在SELECT关键字后天添加调节符来控制个别查询的缓存操作。如果缓存模式是ON或DEMAND,那么SELECT SQL_CACHE语句会让查询结果被缓存。SELECT SQL_NO_CACHE语句会使查询结果不被缓存。

如果某些查询从经常改变的数据表中检索信息,那么抑止对这些查询的缓存操作是有用的。在这种情况下,缓存未必有多大用处。假设你把Web服务器请求的日志存储在MySQL数据表中,同时周期性地运行该数据表上的一组统计查询。对于很繁忙的Web服务器来说,会频繁地出现新行插入该数据表的操作,因此该数据表的任何缓存了的查询结果很快就变成无效的了。其含义是,尽管你周期性地提交统计查询,但是查询缓存可能对这些查询没有什么价值。在这种情况下,最好使用SQL_NO_CACHE调节符告诉服务器不要缓存这些查询的结果。

硬件问题

本文前面的部分中讨论的帮助你提高服务器性能的技术是没有考虑硬件配置的。你当然可以通过使用更好的硬件来让服务器运行地更快。但是并非所有的与硬件相关的改变都有相同的价值。当我们评估哪些硬件提高了性能的时候,最重要的原则与调整服务器参数的原则是相同的:尽可能地把最多的信息放在最快的存储中,并让这些信息尽可能地保持在该存储中。

上一页  1 2 3 4 5 6 7  下一页

Tags:MySQL 查询 优化

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