## 字段缓存
由于字段检查和自动参数绑定需要,在每次查询数据表数据之前需要获取该表的字段信息,但可以支持字段缓存功能。
要开启字段缓存功能必须在数据库配置中设置:
```
// 开启字段缓存
'fields_cache' => true,
// 字段缓存路径
'schema_cache_path' => 'path/to/cache',
```
开启后,会自动生成使用过的数据表字段缓存,如果你更改了数据表的字段及类型,需要清空字段缓存文件。字段缓存采用文件方式保存,路径由`schema_cache_path`配置参数设置。
如果是在ThinkPHP`6.0+`中使用,则可以使用指令直接生成(或更新)字段缓存
```
php think optimize:schema
```
如果你的模型类是各个应用独立的话,需要指定应用名生成字段缓存
```
php think optimize:schema index
```
也可以指定生成某个数据库的所有数据表字段缓存。
```
php think optimize:schema --db demo
```
每次执行指令都会重新生成数据表字段缓存文件,如果只是更改了数据表的某个字段或者增加了新的字段,重新部署上线的时候,支持单独更新某个数据表的缓存。
使用`--table`参数指定需要更新的数据表:
~~~
php think optimize:schema --table user
~~~
支持指定数据库名称
~~~
php think optimize:schema --table demo.user
~~~
生成字段缓存后,你会发现数据库的查询性能提升明显,尤其是在请求中操作大量数据表的情况下。
- 简介
- 数据库配置
- 分布式数据库
- 查询构造器
- 查询数据
- 新增数据
- 更新数据
- 删除数据
- 链式操作
- Where
- Table
- Alias
- Field
- Strict
- Limit
- Page
- Order
- Group
- Having
- Join
- Union
- Distinct
- Lock
- Cache
- Comment
- FetchSql
- Force
- Partition
- Replace
- FailException
- Extra
- Duplicate
- Sequence
- Procedure
- View
- 聚合查询
- 分页查询
- 时间查询
- 高级查询
- 子查询
- 原生查询
- 事务操作
- 存储过程
- 查询事件
- JSON字段
- 模型
- 定义
- 新增
- 更新
- 删除
- 查询
- 查询范围
- 只读字段
- JSON字段
- 自动时间写入
- 获取器
- 修改器
- 搜索器
- 类型转换
- 模型输出
- 模型事件
- 虚拟模型
- 关联
- 一对一关联
- 一对多关联
- 远程一对多
- 远程一对一
- 多对多关联
- 多态一对多
- 多态一对一
- 关联预载入
- 关联统计
- 关联输出
- SQL监听
- 缓存机制
- 字段缓存
- 查询缓存
- 扩展
- 自定义查询类
- 自定义数据库驱动