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如何通过读取数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)