提升数据库性能

  • 查询缓存(Query Caching)
  • MyISAM和InnoDB存储引擎
  • Percona数据库和Percona XtraDB存储引擎
  • MySQL性能监控工具
  • Redis
  • Memcached

查询缓存

它是mysql的一个重要特性,它缓存了SELECT查询及其结果数据集。当一个同样的SELECT查询发生的时候,mysql从内存中直接取出结果,这样就加快了查询的执行速度,同时减小了数据库的压力。

查看MySQL服务器上的查询缓存是否已经打开:

SHOW VARIABLES LIKE 'have_query_cache';

如果关闭,'have_query_cache'字段会是NO。

若要开启查询缓存,可以修改my.cnf:

query_cache_type = 1
query_cache_size = 128MB
query_cache_limit = 1MB

保存重启。

  • query_cache_type:如果设置为1,并且query_cache_size为0,则不会分配任何内存空间,查询缓存被禁用;如果query_cache_size值大于0,就开启查询缓存,并且分配了内存空间。所有不超过query_cache_limit值的查询,或者使用SQL_NO_CACHE选项的查询,都会被缓存。如果设置为0,并且query_cache_size为0,则不会分配任何内存空间,查询缓存被禁用;如果query_cache_size值大于0,内存将会分配,但是不缓存任何数据,查询缓存被禁用。
  • query_cache_size:表示将会分配多少内存。并不是分配越多越好,这个选项值依赖数据库体积、查询类型、和读写比例、硬件、数据库流量和其他因素。比较合适的值是在100MB到200MB之间。然后我们监控性能,并入上文所说调整查询缓存依赖的其他变量的值。对于大部分站点128MB就能工作的很好了。这个值设置为0可以关闭查询缓存。
  • query_cache_limit:定义了能被缓存的查询结果的最大体积。如果查询结果大于这个值,就不会被缓存。这个配置值可以通过找到最大的select查询结果的体积推测而来。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(php,mysql)