MySQL w / PHP中的查询时间结果

问题描述 投票:14回答:4

是否有一种方法可以获取MySQL查询的时间(特别是使用PHP)?完成查询所花费的实际时间,即。

诸如:褐色结果1-10。 ((0.11秒)

我试图寻找一个例子,无济于事。这是我的代码的示例:

                    // prepare sql statement
                $stmt = $dbh->prepare("SELECT ijl, description, source, user_id, timestamp FROM Submissions WHERE MATCH (ijl, description) AGAINST (?)");

                // bind parameters
                $stmt->bindParam(1, $search, PDO::PARAM_STR);

                // execute prepared statement
                $stmt->execute();

对于我当前使用MyISAM表引擎进行的全文搜索。任何帮助都将是不可思议的。谢谢。

php mysql time myisam
4个回答
42
投票
$starttime = microtime(true);

//Do your query and stuff here

$endtime = microtime(true);
$duration = $endtime - $starttime; //calculates total time taken

NOTE,这将为您提供运行时间,以[[seconds(不是微秒)为单位,直到get_as_float参数为true。参见this


5
投票
这可能对您有帮助

http://dev.mysql.com/doc/refman/5.0/en/show-profile.html

mysql> SET profiling = 1; Query OK, 0 rows affected (0.00 sec) mysql> DROP TABLE IF EXISTS t1; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> CREATE TABLE T1 (id INT); Query OK, 0 rows affected (0.01 sec) mysql> SHOW PROFILES; +----------+----------+--------------------------+ | Query_ID | Duration | Query | +----------+----------+--------------------------+ | 0 | 0.000088 | SET PROFILING = 1 | | 1 | 0.000136 | DROP TABLE IF EXISTS t1 | | 2 | 0.011947 | CREATE TABLE t1 (id INT) | +----------+----------+--------------------------+

问候

3
投票
我现在可以告诉您两种可能性:

    用microtime()包装-> execute()并自己进行测量,可能将整个“查询”代码段包装在类/函数中
  • 运行该查询的EXPLAIN查询,看看是否可以从返回的数据中读取一些值
  • 希望有所帮助。

  • 0
    投票
    如果您正在使用MYSQL 5,则最好检查一下SHOW PROFILE

    http://dev.mysql.com/doc/refman/5.0/en/show-profile.html

    并在php中显示时间...或解释花费较长时间或详细说明每个查询的SQL语句...由CPU等

    © www.soinside.com 2019 - 2024. All rights reserved.