关于使用tp5框架如何提升部分性能,框架中很多影响性能的问题在于,很多请求都要重新加载,如果能避免过度加载的问题,就能提升部分性能,所以我们通过缓存来实现这一功能,具体如下。

首先说明 如果是linux 或者是Mac,需要给予权限才能操作

以下方法建议,在网站稳定后再生成上传。

这四个缓存都是通过在项目根目录下通过命令 : php think optimize:XXX 得到, 生成的缓存都放在 runtime 缓存目录下面。

1、 生成路由缓存

php think optimize:route

如果你的应用定义了大量的路由规则,那么建议在实际部署后生成路由缓存文件,可以免去路由注册的开销,从而改善路由的检测效率

这里如果没有权限 会报异常 我这里是Mac 需要加sudo

sudo php think optimize:route

成功以后会在runtime 目录下生成一个 route.php 文件

2、 生成类库映射文件

sudo php think optimize:autoload

类库映射文件可以提高自动加载的性能

成功以后会在runtime目录下生成 classmap.php 文件

3、 生成数据表字段缓存如果你希望提高查询的性能,可以通过生成字段缓存来减少查询

sudo php think optimize:schema

执行完毕,会在RUNTIME_PATH目录下面创建schema目录,然后在该目录下面按照database.table.php的文件命名生成数据表字段缓存文件。

4、 开启请求缓存如果你的数据实时性不是很大 可以开启,

// 是否开启请求缓存 true自动缓存 支持设置请求缓存规则'request_cache' => true, 这里默认是false ,开始后性能有很大的提高

5、 可以为应用或者模块生成配置缓存文件

sudo php think optimize:config

默认生成应用的配置缓存文件,调用后会在runtime目录下面生成init.php文件,生成配置缓存文件后,应用目录下面的config.phpcommon.php以及tags.php不会被加载,被runtime/init.php取代。

这里要注意 在本地生成配置缓存时 需要把数据库等重要的配置替换成服务器上的配置以后 ,在生成。

TP5 生成数据库字段 和 路由 缓存来提升性能的更多相关文章

  1. XAF使用数据库访问层缓存的提升性能

    很多时候,为了提升性能,我们可以给数据库访问层做缓存. 以下几步可以完成这个任务:1. 使用自定义的 XPObjectSpaceProvider1.1. 创建自定义的 XPObjectSpacePro ...

  2. EF 实体类的制定属性不生成数据库字段

    添加一个标签即可 [NotMapped] 没什么营养,就是防忘记

  3. 如何利用Nginx的缓冲、缓存优化提升性能

    使用缓冲释放后端服务器 反向代理的一个问题是代理大量用户时会增加服务器进程的性能冲击影响.在大多数情况下,可以很大程度上能通过利用Nginx的缓冲和缓存功能减轻. 当代理到另一台服务器,两个不同的连接 ...

  4. [NewLife.XCode]数据层缓存(网站性能翻10倍)

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...

  5. EF生成实体自动添加数据库字段注释

    我们在用EF从数据库生成模型的时候,默认实体类是没有注释的,但是我们已经在数据库字段添加说明了,能不能自动把注释也拿过来? 答案是:能. 那么我们开始 首先随便开一个ASP.NET   MVC项目,我 ...

  6. PowerDesigner15生成数据库 同时自动生成字段说明(备注)信息

    1.打开Database->Generate Database 2.切换到Format标签页,选中Generate name in empty comment即可生成每个字段的说明(备注)信息 ...

  7. m_Orchestrate learning system---三十二、数据库字段判断为空时容易出现问题,如何从根本上解决这个问题

    m_Orchestrate learning system---三十二.数据库字段判断为空时容易出现问题,如何从根本上解决这个问题 一.总结 一句话总结:字段禁止为空,设置默认值0即可 禁止 空 默认 ...

  8. ThinkPHP5.0框架开发--第7章 TP5.0数据库操作

    ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...

  9. 为什么数据库字段要使用NOT NULL?

    最近刚入职新公司,发现数据库设计有点小问题,数据库字段很多没有NOT NULL,对于强迫症晚期患者来说,简直难以忍受,因此有了这篇文章. 基于目前大部分的开发现状来说,我们都会把字段全部设置成NOT ...

随机推荐

  1. 快捷键IntelliJ IDEA For Mac

    http://www.cnblogs.com/wxd0108/p/5295017.html Mac键盘符号和修饰键说明 ⌘ Command ⇧ Shift ⌥ Option ⌃ Control ↩︎  ...

  2. 行内元素进行绝对(absolute),固定(fixed)定位后会变成块级元素·

    行内元素进行绝对定位后会变成块级元素· position:absolute; <!DOCTYPE html><html lang="en"><head ...

  3. python 改变函数实参的值

    def change(n): n[] = 'Mr Gumby' names = ['Mrs Entity', 'Mrs. Thing'] change(names) print(names) resu ...

  4. python while for 语句

    while 语句: >>> x = >>> : ... x += ... print(x) ... for 语句: >>> words = ['a ...

  5. P1558 色板游戏 状压线段树

    P1558 色板游戏 状压线段树 题面 洛谷P1558 每次不同颜色覆盖一段区间,每次询问一段区间有多少种颜色 因为颜色数\(T\)很小,使用二进制表示状态当前区间有那些颜色,二进制第\(i\)位表示 ...

  6. 【概率论】4-6:协方差和相关性(Covariance and Correlation)

    title: [概率论]4-6:协方差和相关性(Covariance and Correlation) categories: - Mathematic - Probability keywords: ...

  7. array_merge与array+array的区别

    结果:

  8. 测试的Python、 Java语言之争

    现在测试行业如果不会开发语言的话是很难找到工作的,即使是一些功能测试的岗位也会要求代码语言作为技术储备,因为如果做自动化测试或者测试工具脚本开发或者接口测试等都离不开开发语言,那作为测试如果没有代码经 ...

  9. 分页——为Mybatis配置PageHelper

    1.pom.xml追加 pagehelper : 4.1.4 2.mappers.xml中追加 <plugins> <plugin interceptor="com.git ...

  10. csp-s模拟106

    这场其实心态十分爆炸,首先一下午改上次破T3卡常一下午没过,心情十分暴躁.上来开题不顺利,T1想了一个小时没动.于是跳到T2,看T2的80pts貌似可拿就先打了.T3只会判10分,又想打个$2^{2N ...