精华内容
下载资源
问答
  • 2021-02-06 23:26:43

    下面由Laravel教程栏目给大家详解laravel mysql表优化 ,希望对需要的朋友有所帮助!

    fef9c3fd1bfd1b69c87ab8e195f163be.png

    1. 配置信息缓存

    使用以下 Artisan 自带命令,把 config 文件夹里所有配置信息合并到一个文件里,减少运行时文件的载入数量:php artisan config:cache

    上面命令会生成文件 bootstrap/cache/config.php,可以使用以下命令来取消配置信息缓存:php artisan config:clear

    此命令做的事情就是把 bootstrap/cache/config.php 文件删除。

    注意:配置信息缓存不会随着更新而自动重载,所以,开发时候建议关闭配置信息缓存,一般在生产环境中使用,可以配合 Envoy 任务运行器 一起使用。

    2. 路由缓存

    路由缓存可以有效的提高路由器的注册效率,在大型应用程序中效果越加明显,可以使用以下命令:php artisan route:cache

    以上命令会生成 bootstrap/cache/routes.php 文件,需要注意的是,路由缓存不支持路由匿名函数编写逻辑。

    可以使用下面命令清除路由缓存:php artisan route:clear

    此命令做的事情就是把 bootstrap/cache/routes.php 文件删除。

    注意:路由缓存不会随着更新而自动重载,所以,开发时候建议关闭路由缓存,一般在生产环境中使用,可以配合 Envoy 任务运行器 一起使用。

    3. 类映射加载优化

    optimize 命令把常用加载的类合并到一个文件里,通过减少文件的加载,来提高运行效率:

    php artisan optimize --force

    会生成 bootstrap/cache/compiled.php 和 bootstrap/cache/services.json 两个文件。

    你可以可以通过修改 config/compile.php 文件来添加要合并的类。

    在 production 环境中,参数 --force 不需要指定,文件就会自动生成。

    要清除类映射加载优化,请运行以下命令:

    php artisan clear-compiled

    此命令会删除上面 optimize 生成的两个文件。

    注意:此命令要运行在 php artisan config:cache 后,因为 optimize 命令是根据配置信息(如:config/app.php 文件的 providers 数组)来生成文件的。

    4. 自动加载优化

    此命令不止针对于 Laravel 程序,适用于所有使用 composer 来构建的程序。此命令会把 PSR-0 和 PSR-4 转换为一个类映射表,来提高类的加载速度。

    composer dumpautoload -o

    注意:php artisan optimize --force 命令里已经做了这个操作。

    5. 使用 Memcached 来存储会话

    每一个 Laravel 的请求,都会产生会话,修改会话的存储方式能有效提高程序效率,会话的配置信息是 config/session.php,建议修改为 Memcached 或者 Redis 等专业的缓存软件:

    'driver' => 'memcached',

    6. 使用专业缓存驱动器

    「缓存」是提高应用程序运行效率的法宝之一,默认缓存驱动是 file 文件缓存,建议切换到专业的缓存系统,如 Redis 或者 Memcached,不建议使用数据库缓存。

    'default' => 'redis',

    7. 数据库请求优化

    数据关联模型读取时使用 延迟预加载 和 预加载 ;

    使用 Laravel Debugbar 或者 Clockwork 留意每一个页面的总数据库请求数量;

    这里的篇幅只写到与 Laravel 相关的,其他关于数据优化的内容,请自行查阅其他资料。

    8. 为数据集书写缓存逻辑

    合理的使用 Laravel 提供的缓存层操作,把从数据库里面拿出来的数据集合进行缓存,减少数据库的压力,运行在内存上的专业缓存软件对数据的读取也远远快于数据库。$posts = Cache::remember('index.posts', $minutes = 30, function()

    {

    return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();

    });

    remember 甚至连数据关联模型也都一并缓存了,多么方便呀。

    9. 使用即时编译器

    HHVM 和 OpCache 都能轻轻松松的让你的应用程序在不用做任何修改的情况下,直接提高 50% 或者更高的性能,PHPhub 之前做个一个实验,具体请见:使用 OpCache 提升 PHP 5.5+ 程序性能。

    10. 前端资源合并

    作为优化的标准,一个页面只应该加载一个 CSS 和 一个 JS 文件,并且文件要能方便走 CDN,需要文件名随着修改而变化。

    更多相关内容
  • 今天小编就为大家分享一篇在Laravel 中实现是否关注的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • laravel的联查询

    2021-04-19 16:34:36
    本文目录一、联查询1.1 创建迁移文件1.2 执行迁移文件1.3 模拟数据(通过填充器)1.4 联查询例子二、关联模型(重点)2.1 一对一关系2.2 一对多关系2.3 多对多关系(抽象) 一、联查询 联要求至少得有2张表...

    一、联表查询

    联表要求至少得有2张表(除了自己【表】连接自己【表】,自联查询),并且还是存在关系的两张表。
    例如:可以建立2张表:文章表、作者表。

    文章表(article):

    id主键
    Article_name文章名称,varchar(50),not null
    Author_id作者id,int,not null

    作者表(author):

    id主键
    Author_name作者名称 ,varchar(20),not null

    1.1 创建迁移文件

    php artisan make:migration create_article_table
    php artisan make:migration create_author_table
    在这里插入图片描述
    article加上字段:

    $table->increments('id');
    $table->string('article_name', 50)->comment('文章标题');
    $table->integer('author_id') -> comment('作者id');
    $table->timestamps();
    

    在这里插入图片描述


    author加上字段:

    $table->increments('id');
    $table->string('author_name', 20) -> comment('作者名称');
    $table->timestamps();
    

    在这里插入图片描述


    1.2 执行迁移文件

    然后执行迁移文件:
    php artisan migrate
    在这里插入图片描述
    在这里插入图片描述

    1.3 模拟数据(通过填充器)

    1、创建填充器文件(可以将多个数据表的写入操作写在一起)
    php artisan make:seeder ArticleAndAuthorTableSeeder
    在这里插入图片描述
    2、编写数据模拟的代码
    在这里插入图片描述
    3、执行填充器
    php artisan db:seed --class=ArticleAndAuthorTableSeeder
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.4 联表查询例子

    要求查询数据表(文章表、作者表),查询出文章的信息包含了作者名称,联表查询一共有:内联表(inner)、左联表(left)、右联表(right)。

    原始sql语句:【左外联表】
    select article.id,article.article_name, author.author_name from article left join author on article.author_id = author.id
    在这里插入图片描述

    将上述的sql语句改成链式操作:

    语法:DB 门面/模型 -> join 联表方式名称(关联的表名,表1的字段,运算符,表2的字段)

    左连接:如果你是想要执行左链接而不是内链接可以使用leftJoin方法,该方法和join方法的用法
    创建路由:
    在这里插入图片描述
    创建方法:
    在这里插入图片描述
    效果:
    在这里插入图片描述

    在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

    展开全文
  • laravel的数据的迁移

    2021-08-06 19:01:27
    迁移:创建数据的操作 + 删除数据的操作。 填充:往数据表里填充写入测试的数据(数据的插入操作)。 1.1 数据的迁移操作 在迁移过程中,操作可以分为两个部分:创建与编写迁移文件、执行迁移文件。 1.1.2 ...

    迁移:创建数据表的操作 + 删除数据表的操作。 填充:往数据表里填充写入测试的数据(数据的插入操作)。

    1.1 数据的迁移操作

    在迁移过程中,操作可以分为两个部分:创建与编写迁移文件、执行迁移文件。

    1.1.2 迁移文件的创建与编写

    迁移文件默认的位置:

    1、创建迁移文件 例:需要创建试卷的数据表,假设数据表的名字叫做paper。迁移文件名:create_paper_table

     

    在写之前含义如下:

    Schema门面(类)是用于操作数据表的门面,调用其具体的方法之后就可以实现创建数据表与删除数据表,语法如上。 实现试卷表paper的创建:

    id 表的主键,自增 Paper_name 试卷名称,唯一,varchar(100),不为空 Total_score 试卷总分,整型数字,tinyint,默认为100 Start_time 试卷开始考试时间,时间戳类型(整型int) Duration 考试时间长度,单位分钟,整型tinyint Status 试卷是否启用的状态,1表示启用,2表示禁用,默认为1,tinyint类型。

    在创建数据表的列的时候遵循语法:

    常用的列类型:

    列类型解释
    $table -> string('email')等同于数据库中的VARCHAR列
    $table -> string('name', 100)等同于数据库中的VARCHAR,带一个长度
    $table -> increments('id')数据库主键自增ID
    $table -> tinyInteger('numbers')等同于数据库中的TINYINT类型
    $table -> integer('votes')等同于数据库中的INTEGER类型
    $table -> enum('choices', ['foo', 'bar'])等同于数据库中的ENUM类型

    创建数据表的迁移代码:

    <?php
    
    use Illuminate\Database\Migrations\Migration;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Support\Facades\Schema;
    
    class CreatePaperTable extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('paper', function (Blueprint $table) {
                // id  表的主键、自增
                $table->increments('id') -> comment('自增主键');
                // paper_name  试卷名称,唯一,varchar(100),不为空
                $table->string('paper_name', 100) -> comment('试卷名称') -> unique();
                // Total_score  试卷总分,整型数字,tinyint,默认为100
                $table->tinyInteger('total_score') -> comment('试卷总分') -> default(100);
                //start_time 试卷开始考试时间,时间戳类型(整型int)
                $table->integer('start_time') -> comment('考试开始时间');
                // duration  考试时间长度,单位分钟,整型tinyint
                $table->tinyInteger('duration') -> comment('考试时长');
                // status 试卷是否启用状态:1、表示启用。2、表示禁用。默认为1,tinyint类型
                $table->tinyInteger('status') -> comment('试卷启用状态') -> default(1);
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::dropIfExists('paper');
        }
    }
    

    如下:

    1.2 执行迁移文件

    执行分为up执行和down执行。

    1.2.1 up方法的执行:

    先去执行(从而产生一个迁移记录表): php artisan migrate:install

     

    作用:用于创建记录迁移文件的记录数据表。 需要执行up方法,则需要执行命令:php artisan migrate

     

    1.2.2 Down 方法执行:

    down方法执行: php artisan migrate:rollback 回滚操作只删除迁移表中的记录和对应的数据表,其他操作不执行。

    注意:删除(回滚之后)会删除上一个批次的迁移记录,并且同批次建立的数据表也会删除,但是迁移文件依旧存在,方便后期继续迁移(创建数据表)。 批次号:同一次被执行的多个迁移文件其批次号相同。

    在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

    展开全文
  • 下面由Laravel框架教程栏目给大家介绍laravel 创建数据,希望对需要的朋友有所帮助!虽然可以直接在数据库中创建数据,但是不便于以后项目的迁移。现使用命令行结合代码的方式来进行生成。1、通过命令创建数据...

    下面由Laravel框架教程栏目给大家介绍laravel 创建数据表,希望对需要的朋友有所帮助!

    虽然可以直接在数据库中创建数据表,但是不便于以后项目的迁移。现使用命令行结合代码的方式来进行生成。

    1、通过命令创建数据表文件php artisan make:migration create_table_customers

    f7d4991703728a1d1b1581e26382b287.png

    2、在数据表文件中完善数据表相关字段<?php

    use Illuminate\Support\Facades\Schema;

    use Illuminate\Database\Schema\Blueprint;

    use Illuminate\Database\Migrations\Migration;

    class CreateTableCustomers extends Migration

    {

    /**

    * Run the migrations.

    *

    * @return void

    */

    public function up()

    {

    Schema::create('customers', function (Blueprint $table) {

    $table->increments('id');

    $table->string('mobile')->nullable()->unique();

    $table->string('email')->unique();

    $table->string('website')->default('website')->comment('站点:applet、website');

    $table->string('store_id')->default('1')->comment('店铺 ID');

    $table->string('first_name');

    $table->string('last_name');

    $table->integer('appellation')->comment('称谓');

    $table->dateTime('birthday')->comment('生日');

    $table->string('province')->comment('省');

    $table->string('city')->comment('市');

    $table->string('district')->comment('区/县');

    });

    }

    /**

    * Reverse the migrations.

    *

    * @return void

    */

    public function down()

    {

    Schema::dropIfExists('customers');

    }

    }

    7afeb42cd52bfb89059d5e833a9c7bfe.png

    3、生成数据表php artisan migrate

    23d713df558e8f36c1225a254091fdc4.png

    24f4c4e94bc32500572fca992b7ff7ec.png

    此时,数据表已经生成!

    展开全文
  • Laravel关注 用户关注Laravel的取消关注系统。 :light_bulb: 新版本已分为几个软件包: 跟随: 像:过 最喜欢的: 订阅: 投票:overtrue / laravel-vote(正在进行中) 书签:overtrue / laravel书签(正在...
  • Laravel 最爱(Laravel 5, 6, 7, 8 包) 允许 Laravel Eloquent 模型实现“收藏”或“记住”或“跟随”功能。 指数 安装 通过 Composer 安装包 $ composer require christiankuri/laravel-favorite 在 Laravel >=...
  • 本文目录一、商品数据1.1 创建商品数据1.2 商品数据创建二、商品管理2.1 创建商品控制器2.2 创建路由2.3 商品添加api1、创建表单验证2、商品添加控制器3、增加可允许添加的字段以及类型转换 一、商品数据 ...
  • 本博客属于个人使用的博客,主要用作学习记录及分享交流的一个平台,欢迎您的关注。 预览图: 项目介绍 使用Bootstrap响应式页面布局,适配PC、平板、手机; 带表情包的ajax无限级评论系统; 队列邮件通知; QQ、...
  • laravel使用命令行结合代码创建数据的方法发布时间:2021-01-19 10:12:17来源:亿速云阅读:91作者:小新这篇文章主要介绍laravel使用命令行结合代码创建数据的方法,文中介绍的非常详细,具有一定的参考价值,...
  • willchat, 基于Laravel5的开源微信公众号管理平台系统。
  • laravel51.zip

    2019-12-17 11:15:40
    laravel一键安装包,无需依赖,解压即可使用,方便快捷使用laravel,欢迎大家关注,使用! 本安装包来自laravel学院
  • 用户之间相互关注,记录这种关系的是followers(follower_id 发起关注的人 followed_id被关注的人) 现在的多对多的关系就不再是传统的三张表的关系了, 这种情况 多对多关系应该怎么声明呢? 分析 laravel或者其他...
  • 每日允许多次投票扩展:判断中分段出现的次数即可。 防止刷票 添加每日阅读次数,当“投票数/每日可投票数量>阅读数”则有刷票行为。那么每日对投票进行清空就不是很科学了,就无法检测到每个作品的投票情况。 ...
  • laravel 5的关注者系统,Laravel的Trait口才模型可以轻松实现“关注”或“喜欢”或“收藏”或“订阅”功能。 安装 通过将包添加到项目的依赖项中: $ composer require questocat/laravel-rally 首先将服务提供商...
  • $content = '欢迎关注'; $type = "text"; $resultStr = sprintf($template,$FromUserName,$ToUserName, time(), $type, $content); Log::error('error', ['message'=>$resultStr]); return $resultStr; } } } } ...
  • 最近主要在忙活微信与支付宝平台的对接与开发,本篇就基于后端层面来讲述一下微信的登录与绑定实现。 (一)、申请微信开放平台 ... 创建完成后,就会需要腾讯的审核,整个过程在1-3天,基本上1天左右就能完成,审核通过如下...
  • 开发者使用 Laravel 部署一个新项目的时候, 通常会使用 seeder 快速填充本地数据以方便开发调试. iseed 扩展包提供了可将数据表里的数据直接转换为 seeder 文件的功能. 本项目由 The EST Group 团队成员 @monkey ...
  • laravel的RBAC权限设计

    2021-08-26 09:23:12
    1.1 角色与权限的设计 如果涉及到一个用户有多个角色的话,那建议采用如下设计。 一般我们一个用户对应一个角色的话就采用如下设计: 1、创建角色 php artisan make:model Models/Role -m 2、创建权限...
  • laravel52.zip

    2019-12-17 11:16:29
    laravel一键安装包,无需依赖,解压即可使用,方便快捷使用laravel,欢迎大家关注,使用! 本安装包来自laravel学院
  • Laravel S3浏览器 Laravel S3浏览器可帮助您直接在浏览器中浏览S3存储桶并查看其中的文件。 然后,您可以删除文件或下载文件。 该项目对于希望通过遍历大部分文件而不是随机... 在 , , , 关注他 执照 麻省理工学院
  • 瓦尼洛 真正的Laravel电子商务框架 Vanilo的目标是使Laravel开发人员可以愉快地快速创建电子商务应用程序。 当前版本 2.1 Vanilo的最新版本是2.1.1 ,它于2021年1月5日发布。... 在上关注我们。 支持
  • 本文是作者整理的关于laravel框架搜索功能的实现原理,并附上了详细代码,有需要的小伙伴请持续关注
  • 一、 管理员设计 创建用户: 1.1、创建迁移文件和模型: php artisan make:model Models/User -m 1.2、创建用户表字段: public function up() { Schema::create('users', function (Blueprint $table) ...
  • 在项目开发过程中,有时你可能会遇到关于Laravel中迁移的相关问题,比如遇到了一个需要重命名的实例。那么你会手动更改已经创建的迁移以反映新表名、回滚所有环境并再次迁移它们吗?下面我们给大家介绍在Laravel中...
  • 所以继续关注这个空间。 安装 要安装,请使用以下命令通过 Composer 拉取软件包。 composer require ghazanfarmir/laravel-companies-house 现在在 config/app.php 中注册服务提供者 'providers' => [ . . . ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,642
精华内容 2,256
关键字:

laravel 关注表