Memcached 和 MySQL 的 query cache 相比的优缺点?
Memcached 和 MySQL 的 query cache 相比,各有优缺点。
- 内存管理:
- Memcached:可以充分利用内存空间,只要有可用内存就可以增加Memcached集群的规模。
- MySQL的query cache:受到MySQL服务器空闲内存空间的限制,扩展性较差。
- 并发处理能力:
- Memcached:非常简单轻量,无需为每个连接分配大量的内存,也无需解析SQL语句,因此并发处理能力很强。
- MySQL的query cache:MySQL的并发控制复杂度较高,且必须进行SQL语句的解析,所以并发处理能力较差。
- 部署和灵活性:
- Memcached:可以独立部署在多台机器上,每台机器上的Memcached相互独立,并且支持一致性hash算法,扩展性很强。
- MySQL的query cache:只能在MySQL服务器中进行部署,扩展性和灵活性较差。
- 数据结构:
- Memcached:以整个SQL语句为key,比较局限。
- MySQL的query cache:以整个sql语句为key,比较灵活。
- 持久化和主从复制:
- Memcached:未来可能退出本地持久化和主从复制。
- MySQL的query Cache:不支持持久化和主从复制。
- 控制性:
- Memcached:用户基本无法直接操作query cache。
- MySQL的query Cache:用户无法直接操作。但在某些方面上比Memcached要强点。
- 数据安全性:
- Memcached:数据安全性相对较高,因为数据在内存中。
- MySQL的query Cache:数据安全性相对较低,因为数据可能会丢失。
- 性能优化:
- Memcached:如果需要缓存的数据较大或较复杂,可以考虑使用其他缓存策略或结合其他工具使用。
- MySQL的query Cache:对于复杂查询的性能优化效果可能有限。可以考虑使用其他缓存策略或结合其他工具使用。