先问一下,该把PHP的最大执行时间设置为多少秒?我刚才设置为300秒都要超时。我是指插入500000条记录,用的是你前面一个贴子里面的完整PHP代码。然后那个表好像就锁住了,drop都drop不掉。呵呵。我的FreeBSD机器P133/32M RAM。很差的。不过也想试试看。

解决方案 »

  1.   

    for ($i=0; $i<50000; $i++) {
    }
    光执行这条语句花费的时间为:0.20638692379
      

  2.   

    select * from list ORDER BY id DESC LIMIT 49990,10
    要: 4.3428260088
      

  3.   

    to swexplorer():
    时间设置为0,就是无限,drop不掉就重启mysql服务器
      

  4.   

    我的机器:
    赛杨655
    内存256insert用了36.2026950120926秒
    select用了1.1489770412445秒也够慢的了。
    [email protected]
      

  5.   

    优化insert
    插入一条记录的是由以下构成:
    a:连接(3)
    b:发送查询给服务器(2)
    c:分析查询(2)
    d:插入记录(1*记录大小)
    e:插入索引(1*索引)
    f:关闭(1)
    以上数字可以看成和总时间成比例
    改善插入速度的一些方法:
    6.1:如果同时从一个连接插入许多行,使用多个值的insert,这比用多个语句要快
    6.2:如果从不同连接插入很多行,使用insert delayed语句速度更快
    6.3: 用myisam,如果在表中没有删除的行,能在select:s正在运行的同时插入行
    6.4: 当从一个文本文件装载一个表时,用load data infile.这个通常比insert快20倍
    6.5:可以锁定表然后插入--主要的速度差别是在所有insert语句完成后,索引缓冲区仅被存入到硬盘一次.一般与有不同的insert语句那样多次存入要快.如果能用一个单个语句插入所有的行,锁定就不需要.锁定也降低连接的整体时间.但是对某些线程最大等待时间将上升.例如:
    thread 1 does 1000 inserts
    thread 2,3 and 4 does 1 insert 
    thread 5 does 1000 inserts
    如果不使用锁定,2,3,4将在1和5之前完成.如果使用锁定,2,3,4,将可能在1和5之后完成.但是整体时间应该快40%.因为insert,update,delete操作在mysql中是很快的,通过为多于大约5次连续不断的插入或更新一行的东西加锁,将获得更好的整体性能.如果做很多一行的插入,可以做一个lock tables,偶尔随后做一个unlock tables(大约每1000行)以允许另外的线程存取表.这仍然将导致获得好的性能.load data infile对装载数据仍然是很快的.
    为了对load data infile和insert得到一些更快的速度,扩大关键字缓冲区.
    以上的一些建议是我的一篇拙作
    http://www.csdn.net/develop/read_article.asp?id=15093
    浅妄薄见,望与斟酌
      

  6.   

    这篇文章中的一些关于缓冲区的论述是我从mysql.org翻译的----所以可能有些地方不是很正确
      

  7.   

    所以,你要这样插入50万的信息,如果用load data会快很多,建议试试
      

  8.   

    Shakespeare(网络骑士):
    那么读取的速度呢,你有没有什么办法提高呢?
      

  9.   

    读取?
    是select?还是文件的load data?
    如果是select那么,主要有两种情况:
    1:选取列这一般没有什么好说的。因为mysql的数据库一般是巨量的简单记录。不象应用于银行,建筑那样,字段(列)非常的多,所以这个一般不会产生多大的影响
    2:选取记录(主要优化where,limit,left join子句等)(我那篇文章里有一些,不过可能不全,欢迎大家补全啊^-^)如果是用load子句,可以用外部的处理较快的工具来生成这个文件,比如说c语言浅妄薄见,望与斟酌
      

  10.   

    这样子循环是很慢的,不信你可以循环50万次,每次输出i值到浏览器就知道有多慢了,它要占用掉大量的系统资源,因此在我们的pc上简直是无法忍受的并发能力呢?有否测过呀?
      

  11.   

    我正在做的一个项目:硬件:IBM E SERVER
    P4 1.6G
    512M
    72G (RAID0)MYSQL用的配置文件是HUGE ,最多占用内存256M
    数据库中有4千万条纪录,做了索引!查询带条件的东西,极其慢!MYSQL在做
    小型应用时很快。但是数据大了救极其慢!
      

  12.   

    另外,插入时LOCK TABLE了!插入也是极其慢!