使用mysql4。0,使用储存过程来写入,我想这是唯一的提高效率的方法了吧

解决方案 »

  1.   

    通过ODBC用VC++来写直接操作数据库 
      

  2.   

    回答这个问题先看清环境要求:PHP+Mysql,这是单位要求,不是我能改变的。在这种环境下,请问该怎么设计与操作。
      

  3.   

    在怎么优化,最终还是得使用php连接mysql后用insert来执行填加操作
    所以不使用储存过程的话,效果都差不多的
    至于使用obdc的话,使用的内存太大,速度也直接连接方法比起来慢,
      

  4.   

    php连接mysql后用insert插入,一次插入100条左右,把php.ini中超时的时间调得高一点,循环执行该页面就好了。其它没有什么办法
      

  5.   

    可以用文本插入
    比如##1##数据
    一次可以插入5万3千条!!!
    如果用*.sql只插入3万条!!我在插入大量数据用过!!!mysql4.0.13 所得的结果
      

  6.   

    用php操作mysql,连续操作数据库的效率最高.
    这样的话,你就可以把值连在一块一次性插入100或更多
    如下:
    INSERT INTO table (id, name, address) VALUES (NULL, 'sdf'),(NULL, 'sdf'),(NULL, 'sdf'),(NULL, 'sdf'),(NULL, 'sdf'),(NULL, 'sdf'),(NULL, 'sdf'),NULL, 'sdf'),(NULL, 'sdf'),......
      

  7.   

    上面的戏子正解,一条 sql 语句插上 2 万条,这样 50 条语句也没多长时间应该是瞬间完成吧
      

  8.   

    楼上的,我左右考虑了一下 难道我要写100万个(NULL,'sdf')?? 如果说是100万个这个字符串的话,这个文件是多大? 我个人意见是  将这100万记录分段(比如说分开为10个块10万为一块)  我用五个页面去执行他,(当然了你如果用一个页面的话那就等吧,至少机器速度允许的情况下,我可以用一个页面的1/5时间完成,其实思想有点象flashget里的块数)  如果你能分的更精细的话,我想时间上肯定还可以有所提高(只要计算机能运算过来) 以上方法虽然说技术方面不怎么高,但是对于你要求的使用PHP操作MYSQL来说,客观上是可以提高速度 如果真的要用循环来做的话,我还是建议你使用编译语言通过MYODBC操作数据库... 毕竟编译型语言比PHP速度快的多......  
      

  9.   

    用javascript配合。让执行页面自动刷新。这样,你就可以在一边睡觉直到它把数据全部插入^_^
      

  10.   

    楼主,请问一下,就是你们单位所处的服务器是不是LINUX OR UNIX,若是WINDOWS,别谈,整一个报告效率太低,还不如MSSQL,但是,如果是在UNIX环境下面,如果你只是做为初始化数据,需要100万条数据的话,你完全可以使用到UNIX下的BASE+正则表达式,用PERL是最快的,在PHP下面,也可以调用UNIX命令的,那么,你可以使用外部命令来完成,因为,使用到PHP,自身在HTTP协议中有一个就是身生命周期问题,如果你使用外部命令,将做为后台工作,不再存在自生命周期问题,当然,这个若被黑客所用,嘿嘿嘿,死定。
    用文本,是最快的方法,我试过了,但是,看要在什么类型的服务器下,不是指硬件,同为MYSQL,LINUX导入数据的前20.30万数据确实很快,但是,整体性能一下子掉下来,使以后的70多万条数据变的非常之慢,若用FREEBSD,自身感觉初始速度没有LINUX快,但是即使INSERT1000万条数据也非常稳定,也就是,一个是短跑高手,一个是马家军,楼主可以自已试一下。
      

  11.   

    楼主,其实可以的话,建议在PHP里调用外部命令,执行MYSQL DATABASE < FILENAME,这样来执行,MYSQLDUMP在这方面做的很不错,速度是很快,效率是很好,这点,是比POSTGRESQL要好
      

  12.   

    另有一问,我在本机调试程序时,提示我:Notice: Undefined variable: action in c:\program files\apache group\apache\http\admin\make_user.php on line 2
    这是什么原因?
    我的make_user.php :
    1  <?
    2  if ($action=='action'){
    3  include("../dbconn.inc.php");
    4 $sql="select Id from user where Name='$Name' limit 1;";谁能帮忙查查?
      

  13.   

    另:我发现我们的服务器是win2000的,哎,整啥报告!是个私人老板,抠门的不行。
      

  14.   

    very easy!
    你需要往什么数据表,插什么数据都可以。