PHP 怎么循环一组数字(1万条数据)插入数据库

PHP 怎么循环一组数字(1万条数据)插入数据库,第1张

1W条数据量也不是特别大,那就直接读取,然后在foreach入库就可以了

如果数据量非常大的时候,那就分段读取,然后入库~

考虑到php超时,那就网页端打开,第一部分执行完,刷新页面,开始执行第二部分,依次进行

当然,直接在命令行下执行也可以~

给你个思路

先最大化 PHP 效率充分利用 系统资源。

把 sql 拆开比如2万一个用一个 php 去跑 总共用5个 php 一起跑。

然后最大化 mysql 效率

查一下mysql 的瓶颈在哪。针对性的去优化。

查询慢 就看看索引什么的

写慢就查查 buffer 什么的。

这里强烈建议读写分离。

用不通的数据库实例去分别处理读写。

再看看磁盘 IO 性能。看看队列数据。不行就上阵列。或者单表部署单个磁盘。或者读写在不同的磁盘进行。

当然用缓存也可以。

比如把10万条都独出来存到 memcache 等内存缓存中。循环处理数据的时候读内存的数据不用查数据库。

还有终极大招。

你直接把数据库都搬内存里面。。。

我建议一下吧,文本数据库的例子本来太多,但是为了逻辑简化,最好通过专门接口实现文件与数据的转换,可以采用我下面的模板编写:

<php

//文件最前面定义两个全局变量,数据库文件名和用户数组

$pwd_db_file='dbtxt';

$UserPassword=array();

//下面的pwd_db_read函数,把文件内容读入到全局数组中

function pwd_db_read(){

global $pwd_db_file, $UserPassword;

$fp=fopen($pwd_db_file,'r');

while ($s=fgets($fp)){

list($usr,$pwd)=explode('|', $s);

$UserPassword[$usr]=$pwd;

}

fclose($fp);

}

//下面的pwd_db_write函数保存数组内容到文件中

function pwd_db_write(){

global $pwd_db_file, $UserPassword;

fp=fopen($pwd_db_file, 'w');

foreach ($UserPassword as $usr=>$pwd)

fputs($fp,"$usr|$pwd\n");

fclose($fp);

}

//有了上面的全局变量和函数,要写什么功能都简单

//下面假释本脚本调用的时候通过regphpjob=add&user=&pass=

//的格式进行调用,job为add表示添加用户,del表示删除,modi表示修改

//另外的user和pass表示用户名或者密码,job不是以上内容表示登录

//主程序一开始就打开数据库

pwd_db_read();

//下面判断功能

if ($jon=='add'){

if (array_key_exists($user,$UserPassword)) echo "用户 $user 已经存在!"

else $UserPassword[$user]=$pass;//就一句话,简单吧

}elseif (job=='del'){

unset($UserPassword[$user]);//你自己考虑编写是否确认删除的内容

}elseif ($job=='modi'){

if (array_key_exists($user,$UserPassword)) $UserPassword[$user]=$pass;//和添加是不是有点类似

else echo "用户 $user 不存在!"

}else{

if ($UserPassword[$user]==$pass){

echo '密码正确。';

//接下来可能要做许多事情

}else echo '密码错误!';

}

//程序最后保存数据库修改

pwd_db_write();

>

看得懂吗,没有上机调试,语法问题可能难免,如果发现不明白的问题请补充。

<php

mysql_select_db("infosystem",

$link);

//选择数据库

$q

=

"SELECT

FROM

info";

//SQL查询语句

mysql_query("SET

NAMES

GB2312");

$rs

=

mysql_query($q,

$link);

//获取数据集

if(!$rs){die("Valid

result!");}

echo

"<table>";

echo

"<tr><td>部门名称</td><td>员工姓名</td><td>PC名称</td></tr>";

while($row

=

mysql_fetch_row($rs))

echo

"<tr><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td></tr>";

//显示数据

echo

"</table>";

mysql_free_result($rs);

//关闭数据集

分类是uid吧?

你的意思是想统计uid=2和 uid=5的小说数?

如果是这样的话,很简单。

用sql语句的count(),这个和php里统计数组个数的count类似。

$reqult=$db->query("select count(id) from class_x where uid=$row1['id']";

$row=$db->fetch_array($reqult));

echo $row[0];

//这个就是总数。

}

以上就是关于PHP 怎么循环一组数字(1万条数据)插入数据库全部的内容,包括:PHP 怎么循环一组数字(1万条数据)插入数据库、php 如何提高 “循环数据库修改 *** 作”的速度、php如何通过读取数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9496063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存