返回顶部
首页 > 资讯 > 精选 >Laravel Seeder怎么生成百万模拟数据
  • 666
分享到

Laravel Seeder怎么生成百万模拟数据

2023-06-14 08:06:30 666人浏览 薄情痞子
摘要

这篇文章主要介绍了Laravel Seeder怎么生成百万模拟数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Laravel 集成了 Faker 库,并提供了 Seeder

这篇文章主要介绍了Laravel Seeder怎么生成百万模拟数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Laravel 集成了 Faker 库,并提供了 Seeder 可以帮助我们轻松地生成模拟数据。

先书写数据仓库和数据填充代码

数据仓库代码

use App\Models\Topic;use Faker\Generator as Faker;$factory->define(Topic::class, function (Faker $faker) {    $sentence = $faker->sentence();    // 随机取一个月以内的时间    $updated_at = $faker->dateTimeThisMonth();    // 传参为生成最大时间不超过,因为创建时间永远比更改时间要早    $created_at = $faker->dateTimeThisMonth($updated_at);    return [        'title' => $sentence,        'body' => $faker->text(),        'excerpt' => $sentence,        'created_at' => $created_at,        'updated_at' => $updated_at,    ];});

数据填充代码

 class TopicsTableSeeder extends Seeder{        public function run()    {        // 所有用户ID数组,如:[1,2,3,4]        $user_ids = User::all()->pluck('id')->toArray();        // 所有分类 ID 数组,如:[1,2,3,4]        $cateGory_ids = Category::all()->pluck('id')->toArray();        // 获取 Faker 实例        $faker = app(Faker\Generator::class);        $topics = factory(Topic::class)            ->times(1000)            ->make()            ->each(function ($topic, $index) use ($user_ids, $category_ids, $faker){                // 从用户 ID 数组中随机取出一个并赋值                $topic->user_id = $faker->randomElement($user_ids);                // 话题分类,同上                $topic->category_id = $faker->randomElement($category_ids);            });        // 将数据集合转换为数组,并插入到数据库中        Topic::insert($topics->toArray());    }}

我们通过是 times() 设置了填充的次数,执行数据填充命令,可以将 1000 条数据填充至 topics 表中,这很方便。

PHP artisan db:seed --class=TopicsTableSeeder

如果我们想要插入 100w 条数据,是不是把 times() 的参数改为 1000,000 就可以了?当你这样做之后,你会发现如下报错

General error: 1390 Prepared statement contains too many placeholders

这个问题是因为 mysql 默认支持的占位符最多为 65535(2^16-1) 个,写入数据为 m 列,n 行。m*n 必须小于 65535。

所以没法一次性插入大量数据,查了一下 php artisan db:seed 也没有提供执行次数的相关参数。

最后,决定使用 shell 脚本进行解决。

for (( i = 0; i < 1000; i++ )); do    /usr/local/bin/php artisan db:seed --class=TopicsTableSeederdone

等待片刻,你会发现 100w 数据已经生成完毕!

PS:数据仓库和数据填充代码来自 larabbs

感谢你能够认真阅读完这篇文章,希望小编分享的“Laravel Seeder怎么生成百万模拟数据”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: Laravel Seeder怎么生成百万模拟数据

本文链接: https://lsjlt.com/news/269297.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Laravel Seeder怎么生成百万模拟数据
    这篇文章主要介绍了Laravel Seeder怎么生成百万模拟数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Laravel 集成了 Faker 库,并提供了 Seeder...
    99+
    2023-06-14
  • Laravel怎么生成url模式
    这期内容当中小编将会给大家带来有关Laravel怎么生成url模式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Laravel 生成url模式通过url辅助函数(路由)生成  &nbs...
    99+
    2023-06-15
  • mongodb怎么取出百万数据
    在MongoDB中取出大量数据有多种方法,以下是一些常用的方法:1. 使用find()方法获取所有数据:使用find()方法可以获取...
    99+
    2023-09-04
    mongodb
  • mysql自动插入百万模拟数据的操作代码
    本人数据库工具用的navicat 其他的大同小异 1.打开navicat,在对应的数据库下有个函数菜单,右键新建函数==》完成 2.创建测试表 user,懒得写语句 反正每个人需...
    99+
    2024-04-02
  • 百万级MySQL的数据量怎么快速完成数据迁移
    这篇文章主要讲解了“百万级MySQL的数据量怎么快速完成数据迁移”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“百万级MySQL的数据量怎么快速完成数据迁移”...
    99+
    2024-04-02
  • Plsql怎么导出百万级数据
    在PL/SQL中如果需要导出大量数据,可以使用以下方法之一: 使用PL/SQL Developer等工具进行数据导出:通过PL/...
    99+
    2024-04-09
    Plsql
  • plsql怎么导出百万数据到csv
    在PL/SQL中,可以使用`UTL_FILE`包来导出数据到CSV文件。以下是一个示例代码,用于将百万行数据从表中导出到CSV文件:...
    99+
    2023-08-31
    plsql
  • python百万并发数据怎么处理
    在处理百万并发数据时,可以考虑使用以下方法: 使用多线程/多进程:通过创建多个线程或进程来处理并发数据请求,可以提高处理速度。可...
    99+
    2023-10-27
    python
  • oracle怎么批量更新百万数据
    在Oracle数据库中,可以使用批量更新语句来更新大量数据。以下是一种常用的方法: 创建一个临时表,将需要更新的数据插入到该临时表...
    99+
    2024-03-01
    oracle
  • oracle百万数据查询怎么优化
    使用合适的索引:在查询大量数据时,使用合适的索引可以大大提高查询性能。确保数据表上的列经常被查询的列上创建索引,以加速查询速度。 ...
    99+
    2024-04-09
    oracle
  • oracle怎么一次添加百万数据
    要一次性添加大量数据到Oracle数据库中,可以使用以下方法: 使用SQLLoader工具:SQLLoader是Oracle提供...
    99+
    2024-04-27
    oracle
  • java怎么对百万条数据做计算
    对百万条数据进行计算需要考虑到内存的限制和计算的效率。以下是一些常见的处理方法:1. 使用数据库:将数据存储在数据库中,然后使用SQ...
    99+
    2023-09-13
    java
  • 聊聊php百万数据怎么写入csv
    本篇文章给大家带来了关于PHP+csv的相关知识,其中主要介绍了php百万数据怎么通过脚本文件写入csv的相关内容,下面一起来看看怎么实现的吧,希望对大家有帮助。需求:百万数据写入 csv。框架:N 多年前老框架,百度都搜不到了,所以写法趋...
    99+
    2023-05-14
    php csv
  • java怎么对百万条数据做读写
    在Java中,对于百万条数据的读写操作,可以使用以下方法:1. 使用缓冲流:通过使用`BufferedReader`和`Buffer...
    99+
    2024-02-29
    java
  • laravel 从现有的数据库生成模型并通过模型操作数据库
    一:拓展安装 laravel中从现有的数据库生成模型并通过模型操作数据库需要使用到reliese/laravel拓展 reliese/laravel插件地址: https://packagist.org/packages/relie...
    99+
    2023-08-31
    laravel php Powered by 金山文档
  • ADO.NET Framework模型生成数据怎么实现
    本篇内容介绍了“ADO.NET Framework模型生成数据怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通过这些DataAdap...
    99+
    2023-06-17
  • 怎么用Mysql存储过程造百万级数据
    本文小编为大家详细介绍“怎么用Mysql存储过程造百万级数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Mysql存储过程造百万级数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.准备工作(1)由于...
    99+
    2023-07-05
  • Vue之使用mockjs生成模拟数据案例详解
    目录在项目中安装mockjs在Vue项目中使用mockjs的基本流程Mock语法规范数据模板定义规范(Data Template Definition,DTD)数据占位符定义规范(D...
    99+
    2024-04-02
  • 怎么在mysql中优化百万级数据表的查询
    怎么在mysql中优化百万级数据表的查询?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.两种查询引擎查询速度(myIsam 引擎 )InnoDB 中不保存表的...
    99+
    2023-06-15
  • MVC中怎么利用EntityFramework生成数据库模型
    MVC中怎么利用EntityFramework生成数据库模型,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先打开VS2013,新建Web...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作