我想在MySQL上缓存数据
SET GLOBAL query_cache_size = SOME_SIZE;
Run Code Online (Sandbox Code Playgroud)
是否有必要在MySQL中高效缓存数据?
我是否需要添加额外的东西才能有效地使用缓存?
我对数据缓存没有很好的了解但仍然需要用于性能问题,所以如果我错过了一些重要的信息,请假设系统处于默认状态时回答这个问题.
我通常不建议使用MySQL查询缓存.理论上听起来很棒,但不幸的是,对于高效缓存并不是一个很好的胜利,因为从查询中访问它是由互斥锁控制的.这意味着许多并发查询会排队以获取对查询缓存的访问权限,如果您拥有大量并发客户端,这会带来更多损害.
即使这些查询没有结果集,它甚至会损害INSERT/UPDATE/DELETE,因为如果它们更新相同的表,它们会从查询缓存中清除查询结果.并且这种清除在互斥体上受到相同的排队.
更好的策略是使用memcached进行特定查询结果的可伸缩缓存,但这需要您考虑要缓存的内容并编写应用程序代码以访问memcached并在缓存中不存在数据时将其故障返回到MySQL .这是更多的工作,但如果你做得对,它会带来更好的结果.
| 归档时间: |
|
| 查看次数: |
1972 次 |
| 最近记录: |