`

谭俊青:MySQL vs NoSQL 效率与成本之争,Memcached和MySQL

 
阅读更多

http://www.mysqlab.net/blog/2010/03/mysql-vs-nosql/ MySQL vs NoSQL 效率与成本之争
2010年3月17日谭俊青发表评论阅读评论
最近Twitter、DIGG等计划换用基于key-value的NoSQL数据库(e.g:Cassandra),之所以有如此动向是因为基于MySQL + sharding + cache的构架随着数据量爆炸式增长,重构的人力成本太高,换用扩展性更好的NoSQL数据库,以达到控制人力成本的目的,从而减少总体成本
随着数据量和访问量的增长,网站构架大致有这么几个发展阶段(以PHP+MySQL+Memcached为例):
1: PHP + MySQL
2: PHP + MySQL (Master + Slaves)
3: PHP + MySQL (Master + Slaves) + Memcached (Middleware) 【虎.无名:这里Middleware指什么?】
4: PHP + MySQL (Sharding + Master + Slaves) + Memcached (Middleware)
5: PHP + MySQL (Sharding + Master + Slaves) + Memcached (Middleware) + NoSQL
从上面的发展历程可以看出,随着复杂度的增加,开发难度和复杂性也随之提升,数据量增加之后每次重构需要的人力成本急剧增加,因此为了控制成本,增长重构的周期,将一些数据量庞大,增长快速的业务迁移至NoSQL上存储。
因此大家不必要言必NoSQL,NoSQL也不会取代MySQL,不同的业务有它最适合的低成本存储方式,最终选择什么数据库是由系统成本决定的
http://www.mysqlab.net/blog/2010/03/memcached-and-mysql/ Memcached and MySQL
2010年3月1日谭俊青发表评论阅读评论
相信很多开发人员接触过memcached,而且我认识的朋友当中有的是经常使用。那么在结合数据库,在对数据库内容做缓存的时候什么情况下使用memcached却不甚了解。有些朋友问到MySQL有自己的Query cache,为什么还要用memcached? –by ivan@mysqlab.net
MySQL为了效率考虑,不太可能将数据粒度分那么细,所以在对表更新的时候将清空所有涉及到这张表的qcache,这样的话,在更新频繁或者表记录数很大的情况,qcache的效率将大打折扣。而使用memcached一般都是针对单条记录,从而在更新的时候对表中其他记录的cache没有影响,相比qcache来说,cache效率极大提高。这也是为什么在MySQL有Query cache的情况下还要使用memcache来缓存数据。
不过结合MySQL和memcached使用需要app层配合。不过当前也有MySQL memcached UDFs结合MySQL触发器trigger,可是实现MySQL数据库的内容跟memcached同步,这样可以避免不同的应用程序需要实现对memcached的管理
MySQL memcached UDFs的下载地址:https://launchpad.net/memcached-udfs
shell> tar zxf memcached_functions_mysql-x.xx.tar.gz
shell> cd memcached_functions_mysql-x.xx
shell> ./configure –with-mysql=/usr/local/mysql/bin/mysql_config
shell> make
shell> make install
shell> cp /usr/local/lib/libmemcached_functions_mysql* /usr/local/mysql/lib/mysql/plugins/
mysql> CREATE FUNCTION memc_get RETURNS STRING SONAME "libmemcached_functions_mysql.so";
mysql> source /path/TO/install_functions.sql
详情请参考:http://dev.mysql.com/doc/refman/5.1/en/ha-memcached-interfaces-mysqludf.html

分享到:
评论

相关推荐

    canal 的 mysql 与 redis/memcached/mongodb 的 nosql 数据实时同步方案

    标题中的“canal”的MySQL与“redis/memcached/mongodb”的NoSQL数据实时同步方案,主要涉及了数据库间的数据迁移和实时同步技术。这个话题涵盖了多个关键知识点,包括: 1. **Canal**: Canal是阿里巴巴开源的一个...

    12 NoSQL数据库_nosql_MYSQL_

    随着互联网技术的发展和大数据时代的到来,传统的关系型数据库(如MySQL)已经无法满足某些特定场景的需求,这时NoSQL数据库应运而生。本文将深入探讨NoSQL数据库及其与MySQL的对比。 **NoSQL的起源与概念** NoSQL...

    白皮书_MySQL_及_NoSQL使用指南

    综上所述,《白皮书_MySQL_及_NoSQL使用指南》深入剖析了MySQL与NoSQL的结合之道,提供了丰富的理论依据和实践经验,旨在帮助企业优化数据管理流程,提升业务效率和竞争力。无论是对于数据库管理员、软件开发人员...

    nosql研发之路

    《NoSQL研发之路:从历史发展到特殊领域应用》 一、NoSQL概念与分类 NoSQL,全称为“Not Only SQL”,意在强调数据库不仅仅局限于传统的SQL关系型数据库,而是涵盖了一系列非关系型数据库技术。NoSQL数据库的出现...

    cpp-基于canal的mysql与redismemcachedmongodb的nosql数据实时同步方案案例canalclient

    基于canal的mysql与redismemcachedmongodb的nosql数据实时同步方案案例canalclient”指的是一个使用C++实现的项目,它利用了阿里巴巴开源的Canal工具来实现实时同步MySQL数据库的数据到NoSQL数据库,如Redis、...

    mysql5.6说明文档

    7. **Memcached接口**:MySQL 5.6集成了对Memcached协议的支持,使得可以将MySQL作为NoSQL数据库使用,提供键值对存储功能,提升读取速度。 8. **Performance Schema**:这是一个监控和诊断工具,提供了详细的...

    基于大数据下的NOSQL和Mysql融合的数据存储模型研究.pdf

    例如,MySQL 5.6.2版本引入了对Memcached的支持,允许开发者在InnoDB之上使用NOSQL功能,同时保持与MySQL的共存。HandlerSocket的出现进一步提升了性能,它的性能是Memcached的两倍,且支持大量并发连接,能够执行...

    MYSQL基础入门pdf

    MySQL之所以受到众多开发者的青睐,主要原因包括但不限于以下几点: - **多语言支持**:MySQL提供了对多种编程语言的支持,如C/C++、Python、Java、Perl、PHP、Ruby等,这使得开发者能够根据项目需求选择最适合的...

    linux运维学习笔记:MySQL运维基础面试问答题42题.pdf

    MySQL是一个流行的开源关系型数据库管理系统,它适用于各种互联网应用和企业级应用,支持大型数据的存储和管理。Oracle数据库则面向大型传统企业应用软件,提供强大的数据备份、复杂连接查询和一致性数据存储解决...

    MySql Oracle Redis Mycat MongoDB Memcached数据库教程

    本教程涵盖了五个主流的数据库系统:MySQL、Oracle、Redis、Mycat和MongoDB,以及缓存系统Memcached。让我们逐一探讨它们的基础知识、应用场景以及重要特性。 1. MySQL MySQL是一款开源、关系型数据库管理系统,...

    MySql Oracle Redis Mycat MongoDB Memcached等数据库教程.zip

    1. MySQL:MySQL是一款开源、免费的关系型数据库管理系统,广泛应用于Web应用。它支持SQL标准,具有高效率和易用性,适合处理大量数据。MySQL的ACID特性(原子性、一致性、隔离性和持久性)确保了数据的可靠性,而其...

    数据库技术沙龙ppt:NoSQL应用实践

    为了适应快速迭代和敏捷开发的需求,团队放弃了memcached和memcacheDB,转而使用Redis,后者支持更丰富的数据类型,如列表(Lists)、集合(Sets)、哈希(Hashes)和有序集(Sorted sets),从而提高了开发效率。...

    mysql-5.7.33-winx64.zip

    3. **增强的全文搜索**:MySQL 5.7引入了新的全文检索功能,支持停用词、短语匹配和模糊搜索,提升了全文搜索的效率和准确性。 4. **Column Store改进**:对于分析型工作负载,MySQL 5.7的MyISAM和InnoDB存储引擎都...

    基于 Canal 的 MySql RabbitMQ Redis/memcached/mongodb

    1.mysql主从配置 2.对mysql binlog(row) parser 这一步交给canal 3.MQ对解析后binlog增量数据的推送 4.对MQ数据的消费(接收+数据解析,考虑消费速度,MQ队列的阻塞) 5.数据写入/修改到nosql (redis的主从/...

    学习总结 包括Java JVM MySQL NoSQL UML 缓存 消息 分布式事务 SOA 微服务 敏捷 架构设.zip

    这个名为"学习总结 包括Java JVM MySQL NoSQL UML 缓存 消息 分布式事务 SOA 微服务 敏捷 架构设.zip"的压缩包文件,显然包含了一系列IT领域的核心主题,这些主题都是现代软件开发和系统设计的基石。以下是对每个...

    Practical Tips for Using MySQL as a Scalable Key-Value Store

    - **较小的数据更好**:在MySQL中,尽量保持每个键值对的数据量较小,这有助于提高存储效率和查询速度。 - **发挥InnoDB的优势**:InnoDB存储引擎提供了强大的事务支持和行级锁定机制,充分利用这些特性可以显著提升...

Global site tag (gtag.js) - Google Analytics