thinkphp 的SQL缓存怎么使用?

大家好
我在database.php中配置了:

DB_SQL_BUILD_CACHE' =》true,

'DB_SQL_BUILD_LENGTH' => 20,

然后在控制器方法中,使用模型查询一条数据:
users::get(1);

重复执行查询,发现每次都会执行,好像没有缓存第一次的查询结果
SHOW COLUMNS FROM tp_users``

阅读 2k
2 个回答

你在项目根目录运行一下php think optimize:schema 这个命令就可以了,DB_SQL_BUILD_CACHE这个好像thinkphp3.2.3就废弃了

补充一下楼上的回答

  1. 执行命令缓存表结构
每次变更表结构后, 都需要执行一次, 速度很快无需担心
php think optimize:schema
  1. !!!关闭 app_debug, 否则则缓存表结构不会生效, 你说的 SHOW COLUMNS FROM XXX 依然存在

项目性能要求高就必须这样做, 能降低数据库压力提升性能, 否则每次执行用模型执行增删改查都会执行 SHOW COLUMNS FROM.

积少成多想想就知道有多可怕了

该配置在tp5.x都应该生效的, tp6没有用过

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进