InnoDB
在调整现有的memcached
应用程序以使用daemon_memcached
插件
时
,请考虑 MySQL 和表的这些方面:
如果有超过几个字节的键值,使用数字自增列作为表的 主键, 并 在包含memcached 键值的列上
InnoDB
创建唯一的 二级索引可能会更有效。这是因为 如果主键值按排序顺序添加(因为它们具有自动增量值),则最适合大规模插入。主键值包含在二级索引中,如果主键是一个长字符串值,这将占用不必要的空间。InnoDB
如果您使用 memcached
InnoDB
存储多种不同类别的信息,请考虑为每种类型的数据设置一个单独的 表。在表中定义额外的表标识符innodb_memcache.containers
,并使用 符号来存储和检索来自不同表的项目。通过物理划分不同类型的信息,您可以调整每个表的特性以获得最佳空间利用率、性能和可靠性。例如,您可以启用 压缩@@
适用于包含博客文章的表,但不适用于包含缩略图的表。您可能比另一个表更频繁地备份一个表,因为它包含关键数据。您可以 在经常用于使用 SQL 生成报告的表上 创建额外的二级索引。table_id
.key
最好配置一组稳定的表定义以与daemon_memcached插件一起使用,并永久保留表。对表的更改将
innodb_memcache.containers
在下次查询表时生效innodb_memcache.containers
。containers 表中的条目在启动时处理,并在containers.name
使用表示法请求无法识别的表标识符(由 定义) 时查询@@
。因此,只要您使用关联的表标识符,新条目就会可见,但对现有条目的更改需要重新启动服务器才能生效。当您使用默认缓存策略时,对、 、等的
innodb_only
调用可以成功,但仍会触发调试消息,例如 。 由于缓存策略 ,新值和更新值直接发送到 表而没有保存在内存缓存中,因此会出现调试消息。add()
set()
incr()
while expecting 'STORED', got unexpected response 'NOT_STORED
InnoDB
innodb_only