如何提升inserting檔案的資料進入MYSQL
时间:2010-10-22
来源:互联网
我现在用PHP写一个程式,现在我的客户可以上传档案,我用regular rexpression去检查档案,再用一个while回圈去跑。
$newsession_id = date('His').getmypid();
$file_han = fopen($upload_dir.$newfile, "r");
while(!feof($file_han)) {
$name = fgets($file_han);
$pattern1 = '/^(.*)\t([0-9]*)\t([0-9]*)\t(.*)\t([0-9]*)\t([0-9]*)/';
if (preg_match($pattern1,$name)) {
list($org_id_1,$start_1,$end_1,$org_id_2,$start_2,$end_2) = split("\t",$name);
$sql = "insert into synteny (org1,org1_start,org1_end,org2,org2_start,org2_end,note) values('$org_id_1','$start_1','$end_1','$org_id_2','$start_2','$end_2','$newsession_id')";
$result = execute_sql("gsv", $sql, $link);
}
我现在这样是可以完成工作,只是我想知道不知有没有更好的方法可以提升Insert的速度呢?
$newsession_id = date('His').getmypid();
$file_han = fopen($upload_dir.$newfile, "r");
while(!feof($file_han)) {
$name = fgets($file_han);
$pattern1 = '/^(.*)\t([0-9]*)\t([0-9]*)\t(.*)\t([0-9]*)\t([0-9]*)/';
if (preg_match($pattern1,$name)) {
list($org_id_1,$start_1,$end_1,$org_id_2,$start_2,$end_2) = split("\t",$name);
$sql = "insert into synteny (org1,org1_start,org1_end,org2,org2_start,org2_end,note) values('$org_id_1','$start_1','$end_1','$org_id_2','$start_2','$end_2','$newsession_id')";
$result = execute_sql("gsv", $sql, $link);
}
我现在这样是可以完成工作,只是我想知道不知有没有更好的方法可以提升Insert的速度呢?
作者: hallohallo 发布时间: 2010-10-22
$newsession_id = date('His').getmypid();
$file_han = fopen($upload_dir.$newfile, "r");
while(!feof($file_han)) {
$name = fgets($file_han);
$pattern1 = '/^(.*)\t([0-9]*)\t([0-9]*)\t(.*)\t([0-9]*)\t([0-9]*)/';
if (preg_match($pattern1,$name)) {
list($org_id_1,$start_1,$end_1,$org_id_2,$start_2,$end_2) = split("\t",$name);
$sql .= "('$org_id_1','$start_1','$end_1','$org_id_2','$start_2','$end_2','$newsession_id'),";
}
$sql=substr($sql,0,-1);#去除最后一次的逗点
$sql = "insert into synteny (org1,org1_start,org1_end,org2,org2_start,org2_end,note)values".$sql;
$result = execute_sql("gsv", $sql, $link);
以上是我自己的做法,这样应该就不会跟资料库频繁沟通吧!!
$file_han = fopen($upload_dir.$newfile, "r");
while(!feof($file_han)) {
$name = fgets($file_han);
$pattern1 = '/^(.*)\t([0-9]*)\t([0-9]*)\t(.*)\t([0-9]*)\t([0-9]*)/';
if (preg_match($pattern1,$name)) {
list($org_id_1,$start_1,$end_1,$org_id_2,$start_2,$end_2) = split("\t",$name);
$sql .= "('$org_id_1','$start_1','$end_1','$org_id_2','$start_2','$end_2','$newsession_id'),";
}
$sql=substr($sql,0,-1);#去除最后一次的逗点
$sql = "insert into synteny (org1,org1_start,org1_end,org2,org2_start,org2_end,note)values".$sql;
$result = execute_sql("gsv", $sql, $link);
以上是我自己的做法,这样应该就不会跟资料库频繁沟通吧!!
作者: kengkeng 发布时间: 2010-10-22
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28