Skip to content

Latest commit

 

History

History
79 lines (60 loc) · 2.23 KB

system-optimize.md

File metadata and controls

79 lines (60 loc) · 2.23 KB

代码提示/线上性能优化

目录

  • 代码提示
  • 性能优化

代码提示

可以在yii\base\Application;加入以下注释,来让IDE来智能提示

 * @property \jianyan\easywechat\Wechat $wechat
 * @property \common\components\Debris $debris
 * @property \common\services\Application $services
 * @property \Da\QrCode\Component\QrCodeComponent $qr
 * @property \common\components\Pay $pay

性能优化

1、开启生产环境,在项目初始化的时候执行以下代码,并配置项目信息
php init // 然后输入1回车,再输入yes回车
2、开启 OPC 缓存
3、开启 AR 数据库的 schema 缓存

注意:如果修改数据结构,在更新完SQL语句之后需要先关闭Schema再开启,数据结构的修改才会生效,或者直接清空缓存

return [
    // ...
    'components' => [
        // ...
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=127.0.0.1;dbname=rageframe',
            'username' => 'root',
            'password' => '',
            'enableSchemaCache' => true, // 是否开启缓存
            'schemaCacheDuration' => 3600, // 缓存时间
            'schemaCache' => 'cache', // 缓存名称
        ],
    ],
];
4、使用别的存储方式session

例如:redis、memcache、mysql

5、多使用局部缓存,整页缓存 ,http 缓存等,复杂数据库查询也可以做缓存依赖
6、数据库索引等优化,尽量多的使用视图(当有必要)
7、查询操作limit限制

查询结果使用AsArray,这样可以节省内存因为这样返回的是数组,而不是对象,譬如:

$posts = Post::find()->orderBy('id desc')->limit(100)->asArray()->all();
8、最小化的使用assets

这个玩意,是需要加载生成js和css的

9、Composer Atuoloader 优化

命令:

php composer.phar dumpautoload -o
10、通过脚本处理中间数据

可以通过cron定时任务批量处理数据,譬如产品的特价,产品的过滤等等

原文参考:https://blog.csdn.net/terry_water/article/details/43898765