`
saybody
  • 浏览: 903336 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Memcache VS MySQL Query Cache.

阅读更多

记得前天有人问我, Memcache 和 MySQL 自己的 Query Cache 有啥区别? 我这样回答的,前者是山寨中的战斗机,后者是官方的战斗机。
新手回答问题,错了莫怪。哈哈哈。

好像细节上的差别还是有的。
Memcache优点如下:
1. 理论上可以支撑无限并发业务操作。
2. 可以启用单独的实例来缓存巨多的数据。(当然你的机器内存足够大,而且别是32-bit的了。)
3. 可以在非常廉价的机器上运行。
当然也有缺点:
1. 暂时没有官方服务支持。
2. 太容易产生内存碎片了,浪费内存。
3. 需要修改应用程序。
Query Cacahe 优点如下:
1. 有官方的技术支持。(这个单单只购买了企业版的用户)
2. 对应用程序透明。 我们的开发人员乐了。
缺点呢也有:
1. 不能分开自己的这块BUFFER到单独的机器。(不知道能不能关闭MySQL 的主要功能,而单独把Query Cache打开呢? 有兴趣的可以试验下。)
2. 也很容易产生内存碎片,同样浪费内存。

其实上面说的有点牵强,如果你的应用程序完全OO,那么对于Memcache来讲,只需要做少量的修改即可。

分享到:
评论

相关推荐

    Doctrine ORM for PHP.pdf

    Table of Contents Introduction....................................................................................................13 Code Examples.........................................................

    php数据库连接配合memcache_.docx

    3. **字符集设置**:`mysql_query("set names utf-8",$this-dbLink)`设置数据库连接的字符集为UTF-8,确保数据正确地编码和解码。 4. **错误处理**:`dbhalt()`函数用于在出现错误时终止程序并显示错误消息,提供了...

    Discuz!下Memcache缓存实现方法

    3. 修改include/db_mysql.class.php,如增加fetch_array和query方法的Memcache版本,以便将查询结果存入缓存。 通过以上步骤,Discuz!论坛可以利用Memcache缓存频繁查询的结果,减少对MySQL的直接访问,从而降低...

    Memcached、Redis、MySQL存储层面试问题

    7. Memcached和MySQL的query。 Memcached可以和MySQL集成,使用Memcached来缓存MySQL查询结果,从而减少数据库的负载。 8. Memcached和服务器的local cache。 Memcached可以和服务器的local cache集成,使用...

    解析php中memcache的应用

    $result = mysql_query($query); // 存储查询结果 while ($row = mysql_fetch_assoc($result)) { $arr[] = $row; } $memcache->add($key, serialize($arr), 0, 30); $data = $arr; } else { // 从Memcache...

    查看、分析memcached使用状态

    一旦有写操作发生,MySQL 的 Query Cache 就会失效,哪怕只是一行数据的变动。因此,当 MySQL 承载能力达到极限时,其内置的缓存可能不足以解决问题,这时就需要引入 Memcached。 Memcached 提供了一种简单但强大的...

    Memcache 在PHP中的使用技巧

    $res = mysql_query($sql); $rows = []; while ($row = mysql_fetch_array($res)) { $rows[] = $row; } $m->add($key, $rows, 3600); // 缓存1小时 } var_dump($rows); ``` 6. **其他知识点**: - Memcache...

    面试题 数据库缓存篇.pdf

    关于查询缓存的配置,MySQL中可以通过query_cache_type参数来设置查询缓存的使用方式,其有三个值:0表示不使用查询缓存,1表示始终使用查询缓存,而2则表示按需使用查询缓存。query_cache_size参数用于指定为查询...

    数据库操作API封装

    例如,你可以创建一个`MYSQL`对象,然后使用`mysql_real_connect()`建立连接,`mysql_query()`执行查询,最后用`mysql_store_result()`或`mysql_use_result()`处理结果。 **Redis** Redis是一款高性能的键值存储...

    用户行为数据分析.ppt

    * 平滑可扩展的分布式运算子系统:Key-Value Query with Memory Cache、Range Query with Memory Database、Distributed Computing with Map-reduce等技术。 * 高吞吐率的运营服务子系统:Memcache Cluster、MySQL ...

Global site tag (gtag.js) - Google Analytics