这里写问题描述
webman2.0+thinkorm
数据查询会出现 SHOW FULL COLUMNS
1、在 runtime/schema 目录下没有生成 表结构缓存
2、php windows.php 启动后
第一次执行查询 就会出现两次 SHOW FULL COLUMNS
第二次执行查询,不会出现
3、ctrl+c,然后 php windows.php 启动后 ,又会出现2次 SHOW FULL COLUMNS
//config/think-orm.php 部分配置如下
'fields_strict'=>true,
'fields_cache' => true, // 字段缓存,避免查询 SHOW FULL COLUMNS FROM
'auto_timestamp' => true, // 禁用自动时间戳(可选)
'schema_cache_path' => runtime_path('schema'), // 如果有缓存路径需要设置
controller/AdminController.php 查询代码如下
$list = Admin::with(['adminRoles.role'])->where(formatWhere($where))
->order('id', 'desc')
->paginate(['list_rows' => $limit, 'page' => $page]);
//model/Admin.php 部分代码如下
<?php
namespace app\skmanage\model;
use think\Model;
class Admin extends Model
{
protected $table = 'xxxx';
protected $autoWriteTimestamp = false;
protected $createTime = 'created_at';
protected $updateTime = 'updated_at';
// 隐藏密码字段
protected $hidden = ['password'];
// 多对多:用户-角色
public function adminRoles()
{
return $this->hasMany(AdminRole::class, 'user_id', 'role_id');
}
//model/AdminRole.php 部分代码如下
public function role()
{
return $this->belongsTo(Role::class, 'role_id','role_id');
}
这个是tp内置的机制,webman是常驻内存的,所以同一个进程它只是在开始时会有这个
SHOW FULL COLUMNS, 后面就不会有了,不影响性能。 如果是运行在fpm的传统醒目,则每个请求都会有SHOW FULL COLUMNS,对性能影响很大。