Fra*_*ank 1 mysql performance caching
我在Linux上运行了一个MySQL服务器.它有一些关键应用程序,我们已经设置了尽可能高的查询缓存.我也有一些非关键数据库,(wordpress/etc).
问题:
提前致谢
不幸的是,很少有选项可以让你操纵MySQL查询缓存.
该query_cache_limit选项指示MySQL不缓存大于设置限制的查询结果.您希望降低此值的原因:
该SQL_NO_CACHE关键字,立即放置后SELECT声明,指示MySQL不缓存此结果.
相反,您可以将query_cache_type服务器选项设置为2仅SQL_CACHE缓存使用关键字的查询.
我还建议确保您的查询缓存实际上已完全使用.SHOW STATUS LIKE 'Qcache_free_memory';给你这个信息.如果您的查询缓存中有很大一部分是免费的,那么这可能意味着您的数据更改太频繁,无法重用缓存中的结果.这也可能意味着您的大多数查询返回的结果集大于query_cache_limit(这反过来可能表明设计错误的查询).
还有一些其他的技巧在这里.
但是,你正确地想知道这是否值得麻烦.在我看来,查询缓存充其量只是快速数据库的次要因素.适当的索引是第一个因素.此外,在许多情况下,您的内存将更好地用于缓存索引(最重要的参数是innodb_buffer_pool_sizeInnoDB表,或key_buffer_sizeMyISAM表)