仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3599|回复: 18
打印 上一主题 下一主题

[学习教程] 绝无经由的从MySQL导入导出大批数据的法式完成办法

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:23:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果你需要额外的功能的话,MySQL的普及性实际上可以让你发现总有一个厂商会提供准确的解决方案,而这个方案会满足你的需要和需求。    人人必定利用过 phpmyadmin 外面的数据库导入,导出功效,十分便利。然而在实践使用中,我发明以下几个成绩:

1、数据库超越必定尺寸,好比6M 这时候利用导出普通没成绩,可以准确的保留到本机硬盘下面,然而导入则不可!缘由是:普通的 PHP.INI 外面设置一时文件/上传文件的巨细限制为2M,而phpmyadmin利用了上传的体例,形成掉败。

2、导出到硬盘的 .SQL 文件在导回时,常常呈现因为某些单引号的成绩引发掉败,形成导入掉败,只能用 MySQL等使用法式导入了。

我的数据库已超越10M,所以必需处理这个成绩。我的思绪:

导出: 用phpmyadmin 保留数据库/表格布局,用剧本读取数据库内容并保留到文件外面!

导入: 用phpmyadmin 恢单数据库/表格布局,用剧本读取文件,然后保留到库外面!



导出法式以下:挪用办法为 ****.php?table=tablename

这个复杂的法式今朝一次保留一个表格!!每行动一个字段的数据!!


if($table=="")exit();

mysql_connect("localhost","name","passWord");

mysql_select_db("database");

$result = mysql_query("select * from $table");

if(mysql_num_rows($result) <= 0) exit();

echo "入手下手转换数据到文本...

";

$handle = fopen("$table.txt","w");

$numfields = mysql_num_fields($result);

fputs($handle,$numfields."\r\n");

for($k=0;$k

{

$msg = mysql_fetch_row($result);

for($i=0;$i<$numfields;$i++)

{

$msg[$i] = str_replace("\r\n","&&php2000mysqlreturn&&",$msg[$i]);

$msg[$i] = str_replace("\n" ,"&&php2000mysqlreturn&&",$msg[$i]);

fputs($handle,$msg[$i]."\r\n");

}

fputs($handle,"------- php2000 dump data PRogram V1.0 for MySQL --------\r\n");

}

fclose($handle);

echo "ok";

?>



导入的法式以下:用法同下面!


if($table=="")exit();

mysql_connect("localhost","name","password");

mysql_select_db("database");

$message = file("$table.txt");

echo $numfields = chop($message[0]);

for($k=1;$k

{

$value="";

for ($i=$k;$i<($k+$numfields-1);$i++)

{

$tmp = str_replace("&&php2000mysqlreturn&&","\r\n",chop($message[$i]));

$value .= "'".addslashes($tmp)."',";

}

$tmp = str_replace("&&php2000mysqlreturn&&","\r\n",chop($message[$k+$numfields-1]));

$value .= "'".$tmp."'";

$query = "insert into $table values (".$value.")";

echo mysql_error();

mysql_query($query);

echo $k." ";

}

echo "ok";

?>



利用办法和能够的成绩!

1、导入时 file()函数能够会有成绩(我的10M的数据没呈现成绩),可以改成 fopen()然后没次读一行!!

2、导入,导出都需求用 ftp 操作,也就是导出后,用 ftp 把数据转到本机,导入时先用ftp转移数据到办事器!使用它开发程序也是非常简单的。”
乐观 该用户已被删除
沙发
发表于 2015-2-16 00:35:42 | 只看该作者
对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。
柔情似水 该用户已被删除
板凳
发表于 2015-2-25 13:51:55 | 只看该作者
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
再现理想 该用户已被删除
地板
发表于 2015-2-28 03:25:45 | 只看该作者
SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
兰色精灵 该用户已被删除
5#
发表于 2015-2-28 04:07:29 | 只看该作者
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
因胸联盟 该用户已被删除
6#
 楼主| 发表于 2015-3-8 23:24:34 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
深爱那片海 该用户已被删除
7#
发表于 2015-3-11 12:25:50 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
精灵巫婆 该用户已被删除
8#
发表于 2015-3-11 20:59:48 | 只看该作者
其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。
海妖 该用户已被删除
9#
发表于 2015-3-19 13:17:01 | 只看该作者
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
飘灵儿 该用户已被删除
10#
发表于 2015-3-27 09:09:30 | 只看该作者
在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。
不帅 该用户已被删除
11#
发表于 2015-4-1 06:51:57 | 只看该作者
一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)
分手快乐 该用户已被删除
12#
发表于 2015-4-1 22:08:52 | 只看该作者
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。
第二个灵魂 该用户已被删除
13#
发表于 2015-4-7 02:27:35 | 只看该作者
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
愤怒的大鸟 该用户已被删除
14#
发表于 2015-4-16 11:11:37 | 只看该作者
对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。
灵魂腐蚀 该用户已被删除
15#
发表于 2015-4-21 20:18:48 | 只看该作者
可以动态传入参数,省却了动态SQL的拼写。
小魔女 该用户已被删除
16#
发表于 2015-4-29 03:42:24 | 只看该作者
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
再见西城 该用户已被删除
17#
发表于 2015-5-1 08:10:35 | 只看该作者
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
冷月葬花魂 该用户已被删除
18#
发表于 2015-5-6 04:09:59 | 只看该作者
SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。
飘飘悠悠 该用户已被删除
19#
发表于 2015-5-6 23:10:06 | 只看该作者
换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-19 12:51

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表