找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 801|回复: 0
打印 上一主题 下一主题

浅析THINKPHP的addAll支持的最大数据量

[复制链接]

2536

主题

2536

帖子

7532

积分

论坛元老

Rank: 8Rank: 8

积分
7532
跳转到指定楼层
楼主
发表于 2018-2-14 05:49:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            Thinkphp中的Model操作有两个方法:add()和addAll
[U]复制代码[/U] 代码如下:
$User = M("User"); // 实例化User对象
$data['name'] = 'ThinkPHP';
$data['email'] = [url=mailto:'ThinkPHP@gmail.com']'ThinkPHP@gmail.com'[/url];
$User->add($data);
$dataList[] = array('name'=>'thinkphp','email'=>'thinkphp@gamil.com');
$dataList[] = array('name'=>'onethink','email'=>'onethink@gamil.com');
$User->addAll($dataList);
addAll方法可以做到批量添加数据的功能,也就是MySQL的这种用法:
[U]复制代码[/U] 代码如下:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
数据量很多情况下尽量选择批量插入而不是循环逐条插入,否则你的数据库会吃不住挂掉。
不过如果你想当然的将所有数据全部存入一个数组并进行addAll也同样会面临挂掉的情况,这是为什么呢?
原因就是mysql中max_allowed_packet变量的配置限制了上传sql语句的长度,在mysql配置中将他配置大一点就行了
max_allowed_packet = 100M
同时在插入数据时也做好批量插入的长度限制,毕竟你不知道什么时候数据会变成百万级别的。
以上就是本文的全部内容了,希望小伙伴们能够喜欢。
            
            
您可能感兴趣的文章:
  • ThinkPHP实现批量删除数据的代码实例
  • ThinkPHP写数组插入与获取最新插入数据ID实例
  • 基于ThinkPHP实现批量删除
  • thinkphp框架实现删除和批量删除
  • Thinkphp批量更新数据的方法汇总
  • thinkphp3.2.3版本的数据库增删改查实现代码
  • thinkPHP批量删除的实现方法分析
  • thinkPHP数据库增删改查操作方法实例详解
  • 基于thinkPHP类的插入数据库操作功能示例
  • thinkPHP数据查询常用方法总结【select,find,getField,query】
  • ThinkPHP3.2框架使用addAll()批量插入数据的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端