Rechercher dans le manuel MySQL
15.19.6.2 Adapting a memcached Application for the InnoDB memcached Plugin
Consider these aspects of MySQL and InnoDB
tables when adapting existing memcached
applications to use the daemon_memcached
plugin:
If there are key values longer than a few bytes, it may be more efficient to use a numeric auto-increment column as the primary key of the
InnoDB
table, and to create a unique secondary index on the column that contains the memcached key values. This is becauseInnoDB
performs best for large-scale insertions if primary key values are added in sorted order (as they are with auto-increment values). Primary key values are included in secondary indexes, which takes up unnecessary space if the primary key is a long string value.If you store several different classes of information using memcached, consider setting up a separate
InnoDB
table for each type of data. Define additional table identifiers in theinnodb_memcache.containers
table, and use the@@
notation to store and retrieve items from different tables. Physically dividing different types of information allows you tune the characteristics of each table for optimum space utilization, performance, and reliability. For example, you might enable compression for a table that holds blog posts, but not for a table that holds thumbnail images. You might back up one table more frequently than another because it holds critical data. You might create additional secondary indexes on tables that are frequently used to generate reports using SQL.table_id
.key
Preferably, configure a stable set of table definitions for use with the daemon_memcached plugin, and leave the tables in place permanently. Changes to the
innodb_memcache.containers
table take effect the next time theinnodb_memcache.containers
table is queried. Entries in the containers table are processed at startup, and are consulted whenever an unrecognized table identifier (as defined bycontainers.name
) is requested using@@
notation. Thus, new entries are visible as soon as you use the associated table identifier, but changes to existing entries require a server restart before they take effect.When you use the default
innodb_only
caching policy, calls toadd()
,set()
,incr()
, and so on can succeed but still trigger debugging messages such aswhile expecting 'STORED', got unexpected response 'NOT_STORED
. Debug messages occur because new and updated values are sent directly to theInnoDB
table without being saved in the memory cache, due to theinnodb_only
caching policy.
Document created the 26/06/2006, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/mysql-rf-innodb-memcached-porting-memcached.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.
References
These references and links indicate documents consulted during the writing of this page, or which may provide additional information, but the authors of these sources can not be held responsible for the content of this page.
The author This site is solely responsible for the way in which the various concepts, and the freedoms that are taken with the reference works, are presented here. Remember that you must cross multiple source information to reduce the risk of errors.