系统操作#

所有的系统操作都由两个冒号 :: 开始。下面我们介绍各个系统操作及所需参数。

解释查询#

::explain { <QUERY> }

<QUERY> 是一单个完整的查询。可以含有查询选项,但是由于查询本身不会被执行,选项不起任何作用。返回的不是查询的结果,而是查询的执行计划。返回格式目前仍没有固定的标准,不过在阅读 此章 之后应该基本能理解。

对存储表的操作#

::relations

列出所有存储表。

::columns <REL_NAME>

列出存储表 <REL_NAME> 的所有列。

::remove <REL_NAME> (, <REL_NAME>)*

删除存储表。如果要一次性删除多个,则用逗号连接其名称。

::rename <OLD_NAME> -> <NEW_NAME> (, <OLD_NAME> -> <NEW_NAME>)*

改变存储表的名称:由 <OLD_NAME> 改为 <NEW_NAME> 。可以同时改多个表的名称,也是用逗号隔开。

::index ...

操作索引表,详见 存储表与事务

::show_triggers <REL_NAME>

列出存储表 <REL_NAME> 关联的触发器。

::set_triggers <REL_NAME> ...

为存储表 <REL_NAME> 设置触发器, 存储表与事务 中有详细说明。

::access_level <ACCESS_LEVEL> <REL_NAME> (, <REL_NAME>)*

设置存储表 <REL_NAME> 的安全级(也叫锁表)。可用的级别如下:

  • normal :任何操作都被允许;

  • protected 禁止 ::remove:replace

  • read_only 在上面的基础上禁止一切对行的写入及删除操作;

  • hidden 在上面的基础上禁止读操作(系统操作 ::relations 等属于元数据操作,不属于读操作,所以仍可以执行)。

这些安全级别主要是为了防止程序员无心的错误造成数据的损坏与丢失,并不是为了防止非法数据访问。

进程#

::running

列出所有正在运行的查询以及其 ID。

::kill <ID>

强行终止某个查询。ID 可通过 ::running 命令获得。

维护#

::compact

要求存储引擎执行数据紧缩操作。紧缩后可能可以使数据文件所占空间减小,访问变快。