標準の SQL インタフェースを介して InnoDB テーブル (デフォルトは test.demo_test
) にアクセスできます。ただし、いくつかの制約があります。
-
memcached インタフェース経由でもアクセスしているテーブルで SQL 経由でクエリーを実行する場合、memcached 操作は、すべての書き込み操作のあとではなく定期的にコミットするよう構成できます。この動作は、
daemon_memcached_w_batch_size
オプションによって制御されます。このオプションが 1 より大きい値に設定されている場合、挿入されたばかりの行を検出するにはREAD UNCOMMITTED
クエリーを使用します。mysql> set session TRANSACTION ISOLATION LEVEL read uncommitted; Query OK, 0 rows affected (0.00 sec) mysql> select * from demo_test; +------+------+------+------+-----------+------+------+------+------+------+------+ | cx | cy | c1 | cz | c2 | ca | CB | c3 | cu | c4 | C5 | +------+------+------+------+-----------+------+------+------+------+------+------+ | NULL | NULL | a11 | NULL | 123456789 | NULL | NULL | 10 | NULL | 3 | NULL | +------+------+------+------+-----------+------+------+------+------+------+------+ 1 row in set (0.00 sec)
memcached インタフェース経由でもアクセスしているテーブルを SQL 経由で変更する場合、memcached 操作を、すべての読み取り操作のあとではなく定期的に新しいトランザクションを開始するよう構成できます。この動作は、
daemon_memcached_r_batch_size
オプションによって制御されます。このオプションが 1 より大きい値に設定されている場合、...InnoDB
テーブルは、トランザクション内のすべての操作で IS (共有インテンション) または IX (排他インテンション) でロックされます。daemon_memcached_r_batch_size
およびdaemon_memcached_w_batch_size
をデフォルト値の 1 よりも著しく増加させた場合、テーブルはほとんどの場合、各操作間で意図的にロックされ、ユーザーはテーブル上で DDL ステートメントを実行できなくなります。