mysql 使用索引提高查询速度

2019-02-17  本文已影响0人  百炼

当数据库数据量比较大时,使用索引优化查询速度

-- 建表语句
CREATE TABLE `t_1` (
                     `id` INT(11) NOT NULL AUTO_INCREMENT,
                     `username` VARCHAR(50) NULL DEFAULT NULL,
                     `ref_id` BIGINT(20) NOT NULL,
                     `salary` BIGINT(20) NULL DEFAULT NULL,
                     PRIMARY KEY (`id`)
)
  COLLATE='utf8_general_ci'
  ENGINE=InnoDB
;
-- 插入两条数据
INSERT INTO `t_1` (`id`, `username`, `ref_id`, `salary`) VALUES (1, 'test1', 6, 7);
INSERT INTO `t_1` (`id`, `username`, `ref_id`, `salary`) VALUES (2, 'test0', 37, 37);

-- 多次执行此方法,向数据库快速插入百万级别的数据
INSERT INTO  t_1(username, ref_id, salary) SELECT username, ref_id, salary FROM t_1;
-- 生成随机数据,使用数据看着更符合生产情况下的数据
UPDATE t_1 SET ref_id = RAND() * 1000 ,salary=RAND()*1000;

SELECT COUNT(1) FROM t_1;
-- 创建索引,当查询走此索引时,速度会变快
CREATE INDEX ref_id_index ON t_1 (ref_id) ;
ALTER TABLE T_1 DROP INDEX ref_id_index ;
SELECT COUNT(1) FROM T_1 WHERE ref_id = 88;

SET PROFILING =1;
SHOW PROFILES;

注意:执行记划只是预估(全表扫描或走索引),能通过执行计划大概评测出哪个会快一些,执行结果才是真正的运行结果。


查询结果分析
上一篇 下一篇

猜你喜欢

热点阅读