生成数据表字段缓存
最后更新于:2022-04-02 07:54:19
## 生成数据表字段缓存`optimize:schema`
>[danger] 字段缓存仅在部署模式下生效,并且仅适用于使用`think-orm`的情况,如果你使用了其它的ORM库,则不支持生成。
可以通过生成数据表字段信息缓存,提升数据库查询的性能,避免多余的查询。命令如下:
~~~cmd
php think optimize:schema
~~~
如果是多应用模式,你可以使用下面的指令生成`admin`应用的字段缓存。
~~~cmd
php think optimize:schema admin
~~~
会自动生成当前数据库配置文件中定义的数据表字段缓存,也可以指定数据库生成字段缓存(必须有用户权限),例如,下面指定生成`demo`数据库下面的所有数据表的字段缓存信息。
~~~cmd
php think optimize:schema --db demo
~~~
>[danger] `V6.0.3+`版本开始,取消了`--db`选项,改用`--connection`选项指定使用的数据库连接来生成,并且缓存用内置的缓存机制替代之前的文件方式。
~~~cmd
php think optimize:schema --connection mysql
~~~
>[danger] 没有继承think\Model类的(抽象)模型类不会生成。如果定义了公共模型类,最好把公共模型类定义为抽象类(`abstract`)。
更新数据表字段缓存也是同样的方式,每次执行都会重新生成缓存。如果需要单独更新某个数据表的缓存,可以使用:
~~~cmd
php think optimize:schema --table think_user
~~~
支持指定数据库名称
~~~cmd
php think optimize:schema --table demo.think_user
~~~
> 需要在数据库配置中设置`fields_cache`为`true`才能生成缓存
';