相同的一条查询语句,查出的数据记录只有5条。thinkphp 链接mysql ,执行速度约为1.03S('DB_TYPE'   => 'mysql')
thinkphp使用pdo 链接mysql ,执行速度约为30ms('DB_TYPE'   => 'pdo')请问 我该如何去查找问题原因

解决方案 »

  1.   

    PDO 优于 mysql 是必然的,否则 PDO 就没有存在的必要了
      

  2.   

    就是简单的select * from *****速度上的差异,这么明显吗
      

  3.   

    mysql应该不会慢那么多,估计哪里有问题...
    但既然pdo这么快就用pdo好了...
      

  4.   

    不过在 php5.4.20 中测试时,mysql 函数组明显的要快于 pdofunction mmysql() {
      mysql_connect();
      mysql_select_db('test');
      mysql_query('set names gbk');
      $rs = mysql_query('select * from clip limit 10');
      while($row = mysql_fetch_assoc($rs)) $res[] = $row;
    //  mysql_close();
      return $res;
    }function mpdo() {
      $p = new PDO('mysql:host=localhost;dbname=test', 'roo', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names gbk"));
      $st = $p->query('select * from clip limit 10');
      return $st->fetchAll(PDO::FETCH_ASSOC);
    }
    $num = 100; //执行100次
    $t = microtime(1);
    $n = $num;
    while($n--) mmysql();
    printf("mysql: %.4f\n", microtime(1) - $t);
    $t = microtime(1);
    $n = $num;
    while($n--) mpdo();
    printf("pdo: %.4f\n", microtime(1) - $t);
    mysql: 0.1094
    pdo: 1.6562
      

  5.   

    在 mmysql 中关闭连接(mysql_close()),得
    mysql: 1.6406
    pdo: 1.5781
    也是可以接受的
      

  6.   

    可以把localhost换成127.0.0.1试下
      

  7.   

    我的new PDO也挺慢的,但是换成把localhost换成127.0.0.1就快了很多了,估计是到本地hosts里面取查询了一次耗了些时间