详解php如何对百万级php开发数据库进行快速排重

MySQL中插入一个记录需要的时间由下列因素组成其中的数字表示大约比例:

  • 发送查询给服务器:(2)
  • 插入记录:(1x记录大小)
  • 插入索引:(1x索引)

如果我们每插入一条都执荇一个SQL语句,那么我们需要执行除了连接和关闭之外的所有步骤N次这样是非常耗时的,优化的方式有一下几种:

  1. 在每个insert语句中写入多行批量插入
  2. 将所有查询语句写入事务中

每种方式执行的性能如下。

InnoDB 的设计目标是处理大容量php开发数据库库系统它的 CPU 利用率是其它基于磁盤的关系php开发数据库库引擎所不能比的。在技术上InnoDB 是一套放在 MySQL 后台的完整php开发数据库库系统,InnoDB 在主内存中建立其专用的缓冲池用于高速緩冲php开发数据库和索引

第一种方法:使用insert into 插入,代码如下:

最后显示为:23:25:05 01:32:05 也就是花了2个小时多! 这是时间撸几把 都行。

第二种方法:使用事务提交,批量插入php开发数据库库(每隔10W条提交下)

时间是一下缩短不少但还是有点长

我擦 插入200W条测试php开发数据库仅仅用了不到6秒钟!代碼如下:

可能这里又会有人说php开发数据库不大 sql文件导出来也是小200M 5秒钟 对一表格 进行200万条php开发数据库 速度已经不错了。

这个再跟大家说一个 TP框架了的 addall方法

速度也很快 但是还不如原生

着了说一下其中可能会遇到的问题 比如试验时可能会出现PHP内存限制 和mysql的SQL语句溢出甚至宕机

2、大镓可以用队列进行分批处理

3、或者自己的一些方法

我要回帖

更多关于 php开发数据库 的文章

 

随机推荐