有无索引查询速度对比

数据库结构:show create table api_test_history_detail;

 CREATE TABLE `api_test_history_detail` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `case_id` varchar(50) DEFAULT NULL,
  `case_number` varchar(50) DEFAULT NULL,
  `host` varchar(100) DEFAULT NULL,
  `url` varchar(100) DEFAULT NULL,
  `model` varchar(100) DEFAULT NULL,
  `name` varchar(100) DEFAULT NULL,
  `description` varchar(500) DEFAULT NULL,
  `request_type` varchar(50) DEFAULT NULL,
  `request_headers` varchar(500) DEFAULT NULL,
  `params_type` varchar(50) DEFAULT NULL,
  `params` longtext,
  `priority` varchar(50) DEFAULT NULL,
  `login_or_not` varchar(50) DEFAULT NULL,
  `platform` varchar(50) DEFAULT 'Android',
  `pre_case_id` varchar(50) DEFAULT NULL,
  `pre_case_data` varchar(500) DEFAULT NULL,
  `expect_whole` longtext,
  `expect_value` varchar(500) DEFAULT NULL,
  `expect_structure` longtext,
  `request_time_millisecond` int(11) DEFAULT '0',
  `run_time_seconds` int(11) DEFAULT '0',
  `start` datetime DEFAULT NULL,
  `end` datetime DEFAULT NULL,
  `result` varchar(50) DEFAULT NULL,
  `response` longtext,
  `reason` varchar(1000) DEFAULT NULL,
  `report_dir_name` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `report_dir_name_index` (`report_dir_name`)
) ENGINE=InnoDB AUTO_INCREMENT=80194 DEFAULT CHARSET=utf8mb4

查询语句:select * from api_test_history_detail where report_dir_name='20230725100814';
查询结果只有一条,未建索引时,查询时间需要 8s+,而建立索引后,查询时间几乎是 0s

在这里插入图片描述

由此可见,建立索引优化查询速度的效率还是非常高的,可以将查询频率高的字段合理建立索引。

另外,还有个细节需要注意一下,查询语句中,字符串值最好用引号括起来,如果不用引号查询依然很耗时!!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wzx77/article/details/131913649
今日推荐