Documentation Home

14.21.5.6 对底层 InnoDB 表执行 DML 和 DDL 语句

您可以通过标准 SQL 接口 访问基础InnoDB表(默认情况下)。test.demo_test但是,有一些限制:

  • 当查询也通过 memcached接口访问的表时,请记住 可以将memcached操作配置为定期提交,而不是在每次写入操作之后提交。此行为由 daemon_memcached_w_batch_size 选项控制。如果此选项设置为大于 的值 1,则使用READ UNCOMMITTED查询查找刚刚插入的行。

    mysql> SET SESSSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
    
    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 |
    +------+------+------+------+-----------+------+------+------+------+------+------+
  • 当使用同样通过memcached接口访问的 SQL 修改表时,您可以将memcached操作配置为定期启动一个新事务,而不是为每个读取操作启动一个新事务。此行为由 daemon_memcached_r_batch_size 选项控制。如果此选项设置为大于 的值 1,则使用 SQL 对表所做的更改不会立即对memcached 操作可见。

  • 对于事务中的所有操作,该InnoDB表是 IS(意向共享)或 IX(意向排他)锁定。如果您 从默认值 daemon_memcached_r_batch_size 和 大幅增加,则表很可能在每次操作之间被锁定,从而防止 表上的DDL语句。 daemon_memcached_w_batch_size1