在软件Navicat中,如何查看执行一条SQL语句的耗时。
如select * from table_name where id = '1' 如何查看当前的语句耗时。
==============================================================
通过测试发下:
SELECT * FROM idc_logistics_assign_rules WHERE id = '100';
SELECT * FROM idc_logistics_assign_rules WHERE id = '200';
//时间: 0.035s
SELECT * FROM idc_logistics_assign_rules WHERE id IN ('100','200')
//时间: 0.020s
我的id是主键,肯定会走索引的,那么走索引的查询应该更快啊。使用IN关键字是不走索引的,但是为什么查询要比两次主键id查询块呢?求解释。
你這裡in是走索引的,執行下
explain SELECT * FROM idc_logistics_assign_rules WHERE id IN ('100','200')
你會看到索引使用情況,它是有用到索引的。要得到正確點的查詢時間的話加個 SQL_NO_CACHE注意
:in用不用索引?根據情況而定。即根據是否能夠利用索引而定。當in的範圍是聚集索引in(1,2) 會被MSSQL自動最佳化成id=1 or id=2 ,你可以使用explain看下,他回傳的row是2 in(1,2)與id=1 or id=2 explain回傳的資料都是一樣的。我可以很負責的告訴你是有用索引。網路上很多提及不走索引的大部分都是舊資料,MSSQL2K以後已經優化了。我這個navicat是在最底下一排
差點就可以說成
到处都是
了你的id是int型吧。為什麼查詢的時候,要加單引號
右下角有查詢時間 以秒為單位