Writing Applications for the InnoDB memcached Plugin The  innodb_api_disable_rowlock  option is not dynamic. It must be specified at startup on the mysqld  command line or entered in a MySQL configuration file. By default, you can perform DDL operations such as  ALTER TABLE  on tables used by the daemon_memcached  plugin. To avoid potential slowdowns when these tables are used for high-throughput applications, disable DDL operations on these tables by enabling  innodb_api_enable_mdl  at startup. This option is less appropriate when accessing the same tables through both  memcached  and SQL, because it blocks  CREATE INDEX  statements on the tables, which could be important for running reporting queries. The  innodb_memcache.cache_policies  table specifies whether to store data written through the memcached  interface to disk ( innodb_only , the default); in memory only, as with traditional  memcached ( cache_only ); or both ( caching ). With the  caching  setting, if  memcached  cannot find a key in memory, it searches for the value in an InnoDB  table. Values returned from  get  calls under the  caching  setting could be out-of-date if the values were updated on disk in the  InnoDB  table but are not yet expired from the memory cache. The caching policy can be set independently for  get ,  set  (including  incr  and  decr ),  delete , and flush  operations. For example, you might allow  get  and  set  operations to query or update a table and the  memcached memory cache at the same time (using the  caching  setting), while making  delete ,  flush , or both operate only on the in-memory copy (using the  cache_only  setting). That way, deleting or flushing an item only expires the item from the cache, and the latest value is returned from the  InnoDB  table the next time the item is requested. innodb_memcache.cache_policies  values are only read at startup. After changing values in this table, uninstall and reinstall the  daemon_memcached  plugin to ensure that changes take effect. Benchmarks suggest that the  daemon_memcached  plugin speeds up DML operations (inserts, updates, and deletes) more than it speeds up queries. Therefore, consider focussing initial development efforts on write-intensive applications that are I/O-bound, and look for opportunities to use MySQL with the daemon_memcached  plugin for new write-intensive applications. Single-row DML statements are the easiest types of statements to turn into  memcached  operations. INSERT  becomes  add ,  UPDATE  becomes  set ,  incr  or  decr , and  DELETE  becomes  delete . These operations are guaranteed to only affect one row when issued through the  memcached  interface, because the  key  is unique within the table. 15.20.6.5 Adapting DML Statements to memcached Operations Storing Data on Disk, in Memory, or Both Allowing or Disallowing DDL mysql>  SELECT * FROM innodb_memcache.cache_policies; +--------------+-------------+-------------+---------------+--------------+ | policy_name | get_policy | set_policy | delete_policy | flush_policy | +--------------+-------------+-------------+---------------+--------------+ | cache_policy | innodb_only | innodb_only | innodb_only | innodb_only | +--------------+-------------+-------------+---------------+--------------+ mysql>  UPDATE innodb_memcache.cache_policies SET set_policy = ’caching’ WHERE policy_name = ’cache_policy’; mysql>  UNINSTALL PLUGIN daemon_memcached; mysql>  INSTALL PLUGIN daemon_memcached soname "libmemcached.so"; 3378