Spec-Zone .ru
спецификации, руководства, описания, API
|
Этот раздел объясняет детали базовых таблиц, используемых InnoDB
/ плагин memcached.
Сценарий конфигурации устанавливает 3 таблицы, необходимые InnoDB memcached. Эти таблицы составляются в выделенной базе данных innodb_memcache
:
mysql> use innodb_memcache;Database changedmysql> show tables;+---------------------------+| Tables_in_innodb_memcache |+---------------------------+| cache_policies || config_options || containers |+---------------------------+3 rows in set (0.01 sec)
Таблицы:
containers
- Эта таблица является самой важной таблицей для memcached демона. Это описывает таблицу или таблицы, используемые,
чтобы сохранить значения memcached. Следует произвести изменения в
этой таблице, чтобы начать использовать интерфейс memcached с один
или больше Ваших собственных таблиц, вместо того, чтобы только экспериментировать с test.demo_test
таблица.
Отображение делается посредством определения соответствующих значений столбцов в таблице:
mysql> desc containers;+------------------------+--------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+------------------------+--------------+------+-----+---------+-------+| name | varchar(50) | NO | PRI | NULL | || db_schema | varchar(250) | NO | | NULL | || db_table | varchar(250) | NO | | NULL | || key_columns | varchar(250) | NO | | NULL | || value_columns | varchar(250) | YES | | NULL | || flags | varchar(250) | NO | | 0 | || cas_column | varchar(250) | YES | | NULL | || expire_time_column | varchar(250) | YES | | NULL | || unique_idx_name_on_key | varchar(250) | NO | | NULL | |+------------------------+--------------+------+-----+---------+-------+9 rows in set (0.02 sec)
db_schema
и db_table
столбцы определяют имя базы данных и имя таблицы для того, чтобы сохранить значение memcached.
key_columns
определяет единственное имя столбца,
используемое в качестве ключа поиска для memcached
операций.
value_columns
описывает столбцы (один или больше)
используемый в качестве значений для memcached операций.
Чтобы определить многократные столбцы, разделите их символами канала (такой как col1|col2|col3
и так далее).
unique_idx_name_on_key
имя индексирования на ключевом
столбце. Это должен быть уникальный индекс. Это может быть первичный ключ,
или вторичное
устройство индексируют. Предпочтительно, сделайте ключевой столбец первичным ключом InnoDB
таблица. Выполнение так сохраняет поиск, переступают через
использование вторичного устройства, индексируют для этого столбца. Невозможно заставить покрытие
индексировать для memcached поисков; InnoDB
возвращает ошибку, если Вы пытаетесь определить составное
вторичное устройство, индексируют и по ключевым и по столбцам значений.
Вышеупомянутые 5 значений столбцов (имя таблицы, ключевой столбец, столбец значений и индексируют) должны быть предоставлены. Иначе, установка перестанет работать.
Хотя следующие значения являются дополнительными, они необходимы для полного соответствия с memcached протоколом:
flags
определяет столбцы, используемые в качестве
флагов (определяемое пользователем числовое значение, которое сохранено и получается наряду с основным
значением) для memcached. Это также используется в
качестве спецификатора столбца для некоторых операций (такой как incr
,
prepend
) если значение memcached отображается на многократные столбцы. Таким
образом, работа была бы сделана на указанном столбце. Например, если Вы отобразили значение на 3
столбца, и только хотите работу инкремента, выполняемую на одном из этих столбцов, можно использовать
flags
определить, какой столбец будет использоваться для этих операций.
cas_column
и exp_column
используются определенно, чтобы сохранить cas
(сравнивать-и-подкачивать) и
exp
(истечение) значение memcached. Те значения связываются с путем memcached, хеши запрашивает к различным серверам и
данным кэшей в памяти. Поскольку InnoDB
плагин memcached столь тесно интегрируется с единственным memcached демоном, и механизм кэширования в памяти
обрабатывается MySQL и пулом
буферов, эти столбцы редко необходимы в этом типе развертывания.
Таблица cache_policies
определяет, использовать ли InnoDB
как хранилище данных memcached (innodb_only
), или использовать традиционный memcached механизм в качестве backstore (cache-only
),
или оба (caching
). В последнем случае, если memcached не может найти ключ в памяти, он ищет значение в InnoDB
таблица.
Таблица config_options
хранит memcached-связанные настройки, которые являются соответствующими,
чтобы измениться во времени выполнения через SQL. В настоящий момент MySQL поддерживает следующие параметры
конфигурации через эту таблицу:
separator
: Разделитель, используемый, чтобы разделить значения длинной строки в
меньшие значения для многократных значений столбцов. По умолчанию это |
символ.
Например, если Вы определили col1, col2
как столбцы значений, И Вы определяете
|
как разделитель, Вы могли дать следующую команду в memcached,
чтобы вставить значения в col1
и col2
соответственно:
set keyx 10 0 19valuecolx|valuecoly
Так valuecol1x
сохранен в col1
и valuecoly
сохранен в col2
.
table_map_delimiter
: Символ, разделяющий имя схемы и имя таблицы, когда Вы
используете @@
нотация на ключевое имя, чтобы получить доступ к ключу в
определенной таблице. Например, @@t1.some_key
и @@t2.some_key
имейте то же самое значение ключа, но сохранены в различных
таблицах и не, конфликтуют - также.
Наконец, сценарий конфигурации составляет таблицу demo_test
в test
база данных как пример. Это также позволяет Демону Memcached, чтобы сразу
работать, не составляя дополнительных таблиц.
Записи в container
таблица определяет, какой столбец используется для какой цель
как описано выше:
mysql> select * from innodb_memcache.containers;+------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+| name | db_schema | db_table | key_columns | value_columns | flags | cas_column | expire_time_column | unique_idx_name_on_key |+------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+| aaa | test | demo_test | c1 | c2 | c3 | c4 | c5 | PRIMARY |+------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+1 row in set (0.00 sec)mysql> desc test.demo_test;+-------+---------------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+---------------------+------+-----+---------+-------+| c1 | varchar(32) | NO | PRI | | || c2 | varchar(1024) | YES | | NULL | || c3 | int(11) | YES | | NULL | || c4 | bigint(20) unsigned | YES | | NULL | || c5 | int(11) | YES | | NULL | |+-------+---------------------+------+-----+---------+-------+5 rows in set (0.01 sec)
Когда никакой табличный ID не требуют через @@
нотация на ключевое имя:
Если у строки есть a name
значение default
, соответствующая таблица используется memcached
плагином. Таким образом, когда Вы делаете свою первую запись в innodb_memcache.containers
перемещаться вне demo_test
таблица, используйте a name
значение default
.
Если есть нет innodb_memcache.containers.name
значение
default
, строка с первым name
значение в
алфавитном порядке используется.