mysql中TIMESTAMPDIFF 和 explain 的作用和用法
阿新 • • 發佈:2019-02-15
1.TIMESTAMPDIFF
語法:TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)
說明:返回日期或日期時間表達式datetime_expr1 和datetime_expr2the 之間的整數差。其結果的單位由interval 引數給出。該引數必須是以下值的其中一個:
- FRAC_SECOND。表示間隔是毫秒
- SECOND。秒
- MINUTE。分鐘
- HOUR。小時
- DAY。天
- WEEK。星期
- MONTH。月
- QUARTER。季度
- 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
執行後會返回表格,詳細解釋百度