java - navicat中如何查看执行一条SQL语句的耗时
高洛峰
高洛峰 2017-04-18 09:50:29
0
5
880

在软件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查询块呢?求解释。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(5)
巴扎黑

Votre ici est indexé. Exécutez explain SELECT * FROM idc_logistics_assign_rules WHERE id IN ('100','200') et vous verrez l'utilisation de l'index, ce qui est utile pour l'index. Pour obtenir l'heure de requête correcte, ajoutez SQL_NO_CACHE

SELECT SQL_NO_CACHE * FROM idc_logistics_assign_rules WHERE id IN ('100','200')

注意 : Doit-il être indexé ? Cela dépend de la situation. Autrement dit, cela dépend si l'index peut être utilisé. Lorsque la plage de in est l'index clusterisé dans (1,2), elle sera automatiquement optimisée par MSSQL pour id=1 ou id=2. Vous pouvez utiliser expliquer pour le voir. La ligne qu'il renvoie est 2 in(1,. 2) et id=1 ou id=2 expliquent renvoie les mêmes données. Je peux vous dire de manière responsable que c'est un index utile. La plupart des mentions sur Internet concernant la non-utilisation des index sont d'anciens matériaux, optimisés depuis MSSQL2K.

伊谢尔伦

Mon Navicat est dans la rangée du bas

刘奇

C'est presque comme si 到处都是

伊谢尔伦

Votre identifiant doit être de type int. Pourquoi devons-nous ajouter des guillemets simples

lors de l'interrogation ?
PHPzhong

Il y a le temps de requête dans le coin inférieur droit en secondes

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal