在软件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查询块呢?求解释。
巴扎黑2017-04-18 09:52:29
여기에 있는 항목이 색인화되었습니다. explain SELECT * FROM idc_logistics_assign_rules WHERE id IN ('100','200')
을 실행하면 색인에 유용한 색인 사용법이 표시됩니다. 올바른 쿼리 시간을 얻으려면 SQL_NO_CACHE
注意
: 색인을 생성해야 하나요? 상황에 따라 다릅니다. 즉, 인덱스를 사용할 수 있는지 여부에 따라 달라집니다. in의 범위가 in(1,2)의 클러스터형 인덱스인 경우 MSSQL에 의해 자동으로 id=1 또는 id=2로 최적화됩니다. 반환되는 행은 2 in(1, 2) id=1 또는 id=2 explain은 동일한 데이터를 반환합니다. 유용한 지표라고 책임감있게 말씀드릴 수 있습니다. 인덱스를 사용하지 않는다는 인터넷상의 언급은 대부분 MSSQL2K 이후 최적화된 오래된 자료입니다.