1. 程式人生 > >mysql中TIMESTAMPDIFF 和 explain 的作用和用法

mysql中TIMESTAMPDIFF 和 explain 的作用和用法

1.TIMESTAMPDIFF

語法:TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)

說明:返回日期或日期時間表達式datetime_expr1 和datetime_expr2the 之間的整數差。其結果的單位由interval 引數給出。該引數必須是以下值的其中一個:

  1. FRAC_SECOND。表示間隔是毫秒
  2. SECOND。秒
  3. MINUTE。分鐘
  4. HOUR。小時
  5. DAY。天
  6. WEEK。星期
  7. MONTH。月
  8. QUARTER。季度
  9. YEAR。年

 使用範例:

$sql = "SELECT d_userid FROM d_needs WHERE addtime BETWEEN '".$stime."' AND '".$etime."'  AND TIMESTAMPDIFF(MINUTE,d_stime,d_etime) < '".$finish_time."' GROUP BY d_userid";

意思是想要查到開始和結束時間差小於5分鐘的人,直接可以作為條件使用

2.explain

我們需要知道SQL的執行計劃,比如是全表掃描,還是索引掃描,這些都需要通過EXPLAIN去完成。EXPLAIN命令是檢視優化器如何決定執行查詢的主要方法。可以幫助我們深入瞭解MySQL的基於開銷的優化器,還可以獲得很多可能被優化器考慮到的訪問策略的細節,以及當執行SQL語句時哪種策略預計會被優化器採用。需要注意的是,生成的QEP並不確定,它可能會根據很多因素髮生改變。MySQL不會將一個QEP和某個給定查詢繫結,QEP將由SQL語句每次執行時的實際情況確定,即便使用儲存過程也是如此。儘管在儲存過程中SQL語句都是預先解析過的,但QEP仍然會在每次呼叫儲存過程的時候才被確定。

用法非常簡單:explain + sql語句即可

explain SELECT paymoney FROM `d_needs` WHERE `pub_type` = 1

執行後會返回表格,詳細解釋百度