`

谭俊青: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 数据实时同步方案

    Pro.MySQL.NDB.Cluster

    Create and run a real-time, highly-available, and high-redundancy version of the world...Chapter 19: MySQL NDB Cluster as a NoSQL Database Chapter 20: MySQL NDB Cluster and Application Performance Tuning

    基于 Canal 的 MySql RabbitMQ Redis/memcached/mongodb

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

    canal_mysql_nosql_sync:基于canal的mysql与redismemcachedmongodb的nosql数据实时同步方案案例demo canal client

    基于Canal的MySql RabbitMQ Redis / memcached / mongodb的nosql同步(多读,nosql延迟不严格需求) 1.mysql主从配置 2.对mysql binlog(row) parser 这一步交给canal 3.MQ对解析后binlog增量数据的推送 4.对MQ数据...

    mysql数据库详解.pdf

    (NoSQL:Not Only SQL)。 3、不同的数据库阵营中的产品有哪些? 大型:Oracle、DB2 中型:SQL-SERVER、MySQl 小型:access等 关系型数据库 memcached、mongodb、redis 非关系型数据库: 4、阵营的区别? 关系型...

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

    基于canal 的 mysql 与 redis/memcached/mongodb 的 nosql 数据实时同步方案 案例,canal client

    详解MySQL下InnoDB引擎中的Memcached插件

    总算是在MySQL中延续了NoSQL的香火,以前单独架设Memcached服务器不仅浪费了内存,而且还必须自己维护数据的不一致问题,有了Memcached插件,这些问题都不存在了,而且借助MySQL本身的复制功能,我们可以说是变相的...

    mysql 5.6 新特性

    在此基础上,MySQL 5.6 进行了全方位的改进,旨在让富于创新的 DBA 和开发人员能够在最新一代的开发框架和硬件平台上创建和部署下一代 Web、嵌入式和云计算/SaaS/DaaS 之应用程序。 简而言之,MySQL 5.6 只是 MySQL ...

    nosql 入门教程

    15.1 MySQL用作NoSQL 241 15.2 静态数据存储 244 15.2.1 存储多元化在Facebook中的应用 245 15.2.2 数据仓库和商业智能 246 15.3 Web框架和NoSQL 247 15.3.1 Rails和NoSQL 247 15.3.2 Django和NoSQL 248 ...

    狂神说Redis笔记.pdf

    翻译为:Redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存和消息中间件。 官网:https://redis.io Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供的数据是可以...

    JAVA中级书籍

    1、对于Java基础技术体系(包括JVM、类装载...4、熟悉Oracle、MySQL等数据库开发与设计以及缓存系统Redis或 Memcached的设计和研发;关系数据库:oracle;PostgreSQL 缓存系统:Redis(Nosql)缓存系统:Memcached。

    视觉中国的NoSQL之路:从MySQL到MongoDB

    2009年以前,同很多公司一样,我们的CMS和社区产品都构建于PHP+Nginx+MySQL之上;MySQL使用了Master+Master的部署方案;前端使用自己的PHP框架进行开发;Memcached作为缓存;Nginx进行Web服务和负载均衡;Gearman...

    开发相关jar包,nosql,jdom,netty,mysql,连接池

    driver-3.0.2.jar,mysql-connector-java-5.1.7-bin.jar,netty-all-4.0.25.Final.jar,parserXml.rar,proxool-0.9.1.jar,proxool-cglib.jar,quartz-all-1.6.5.jar,slf4j-api-1.6.1.jar,slf4j-simple-1.6.1.jar,sqlite...

    MySQL 集群 7.2 新特性白皮书

    MySQL 集群通过Memcached API 提供额外的 NoSQL Key-Value 访问,存取集群中存储的模式(Schema)数据或无模式(Schema-less)数据。 增强跨数据中心的伸缩性, 允许数据节点跨地域部署。 支持虚拟化和云部署。 附加...

    Java - 网络编程PPT

    基于存储介质的不同:分为关系型数据库(SQL)和非关系型数据库(NoSQL:Not Only SQL) 不同数据库阵营的产品 关系数据库 大型:Oracle、DB2 中型:SQL Server/MySQL 小型:Access等 非关系型数据库 Memcached、...

    redis与memcached的区别_动力节点Java学院整理

    传统MySQL+ Memcached架构遇到... 2.Memcached与MySQL数据库数据一致性问题。  3.Memcached数据命中率低或down机,大量访问直接穿透到DB,MySQL无法支撑。  4.跨机房cache同步问题。  众多NoSQL百花齐放,如何选择

    memcached权威指南

    第三章 memcached 的内存管理与删除机制.................................................................................. 9 3.1:内存的碎片化.................................................................

    MySqlCdc:适用于.NET和.NET CoreMySQLMariaDB Binlog更改数据捕获(CDC)连接器

    MySqlCdc 适用于.NETMySQL / MariaDB Binlog更改数据捕获(CDC)连接... 将MySQL数据库复制到Memcached / Redis缓存。 将MySQL数据库复制到NoSQL / Elasticsearch。 派生数据系统。 警告事项 使用二进制日志事件流时

    天涯社区开源的NoSQL数据库 Memlink.zip

     与Memcached不同的是,它的value是一个list/queue。并且提供了诸如持久化,分布式的功能。听起来有点像Redis,但它号称比Redis更好,在很多Redis做得还不好的地方进行了改进和完善。提供的客户端开发包包括 c,...

    Redis数据库的应用场景介绍

    2)Memcached与MySQL数据库数据一致性问题。 3)Memcached数据命中率低或down机,大量访问直接穿透到DB,MySQL无法支撑。 4)跨机房cache同步问题。 众多NoSQL百花齐放,如何选择 最近几年,业界不断涌现出很多

Global site tag (gtag.js) - Google Analytics