Latest Projects

We Know What Works!

Wide Web Way is the best web development company in the middle east targeting KSA, UAE, Jordan and Arab World in general. It has a wide range of tools and experienced team members to help you achieve your goals, whether you're expanding on an existing website, or just starting out.

NoSQL Performance in MySQL: Memcached Plugin for MySQL

How to get NoSql performance with Mysql?
How to make mysql use Memcached by default?

Oracle has released a version of MySQL that supports Memcached plugin daemon for accessing InnoDB tables. This version is available from Mysql Labs and available for linux distributions only.

You can download this version of mysql from mysql 5.6.4-labs innodb-memcached for linux2.6-x86_64. By the way, as per Mysql labs' recommendation, you shouldn't use this version of mysql on your production server directly, test it firstly

Memcached stores key-value queries in memory to achieve NoSQL performance. Memcached has always worked with MySQL, but has run independently. This plugin should speed up the process considerably by allowing Memcached to access the InnoDB API directly.

The main features of this version as mentioned in Innodb blog are:

  • Memcached as a daemon plugin of mysqld: both mysqld and memcached are running in the same process space, with very low latency access to data.
  • Direct access to InnoDB: bypassing SQL parser and optimizer.
  • Support standard protocol (memcapable): support both memcached text-based protocol and binary protocol; all 55 memcapable tests are passed.
  • Support multiple columns: users can map multiple columns into "value". The value is separated by a pre-defined "separator" (configurable).
  • Optional local caching: three options - "cache-only", "innodb-only", and "caching" (both "cache" and "innodb store"). These local options can apply to each of four Memcached operations (set, get, delete and flush).
  • Batch operations: user can specify the batch commit size for InnoDB memcached operations via "daemon_memcached_r_batch_size" and "daemon_memcached_w_batch_size" (default 32).
  • Support all memcached configure options through MySQL configure variable "daemon_memcached_option".


you are allowed to use <a> , <i>, <b>,<ul>,<li> and <br> tags

Manoranjan said: Thanks at 2012-03-24 20:51:32
It is a good news. Thanks for sharing body.

Paul Greene said: at 2012-03-25 06:30:14
Caching is always a good option one way or another. But MySQL still needs to improve on other things such as Replication (it is getting better... but still lots to improve). On that note, I've yet to fully test, but Drizzle is looking good so far. I have it installed on freeBSD, and it's kind of reminding me of Nginx VS Apache, Chrome VS Firefox... And the beauty of it, no changes in SQL syntax / functions and cli is pretty much the same. Instead of mysqldump you have drizzledump... changes like that. The core is trimmed down a lot. Pretty much a more slick MySQL.

Steve Holdoway said: at 2012-03-26 06:40:50
At first read this solution seems to be completely ludicrous! Mysql contains all of the in-memory buffering that is necessary - 20+ years of development have made it so. I'd say that you'd have a far more supportable and performant solution just by tuning your database configuration, rather than adding buzzwords.

@Paul. Compared with - for example - Postgres, replication works pretty well. At least you've had multi-master replication available for years.

Tips and Tricks from the
Web Development Experts