解决方案 »

  1.   

    很遗憾,这是你的硬件和操作系统不支持你那么高的并发。
    仅从 php 角度是不能改变现状的
    对于你的代码:
    在 php 层面没有任何优化的余地
    在 mysql 层面,也只是对 firstname 列做索引而已
      

  2.   

    其实还是可以的,从代码层次我发现了一个问题
    $subject =$name[0];
    这里只取了1行。
      因此来说。$result= "SELECT lastname FROM  a WHERE firstname='".$name."'";  
    可以修改为$result= "SELECT lastname FROM  a WHERE firstname='".$name."' limit 0,1";
    查询速度优化了不少。继续想办法,我相信肯定可以处理
      

  3.   

    $result= "SELECT lastname FROM  a WHERE firstname='".$name."'";

    $result= "SELECT lastname FROM  a WHERE firstname='".$name."' limit 0,1";
    意义是不同的!前者表示可能取出多行
    后者表示无论多少行都只取遇到的第一行如果为了所谓的速度,连本意都扭曲了。那“优化”有什么意义?
      

  4.   

    我表示分库分表吧
    md5(firstname+lastname),散列到不同的数据库表中。
      

  5.   

    上面说的有问题,针对你的where语句猜测,分库分表的依赖应该是md5(firstname),不好意思