mysql索引对排序的影响实例分析
本文实例讲述了mysql索引对排序的影响。分享给大家供大家参考,具体如下:
索引不仅能提高查询速度,还可以添加排序速度,如果order by 后面的语句用到了索引,那么将会提高排序的速度。
测试
1、创建测试表:t15表
CREATE TABLE `t15` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cat_id` int(10) unsigned NOT NULL DEFAULT '0', `price` decimal(10,2) NOT NULL DEFAULT '0.00', `name` char(5) NOT NULL DEFAULT '', PRIMARY KEY (`id`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8
2、插入1W行数据
3、商场网站,一般都会按照某个分类进行价格上的排序,我们来模拟一下,执行同一条sql语句。
select name,cat_id,price from t15 where cat_id=1 order by price;(1)首先不添加索引
从查询分析可以看到Extra中使用到了
Using filesort,表示需要进行文件排序。
(2)给(cat_id,price)列添加索引
alter table t15 add index cp(cat_id,price);这里的查询分析中Extra没用了Using filesort,表示添加上索引再进行查询的sql没有使用到外部排序,而是使用到了索引的排序,因为索引本身就是会排序的,所以不需要额外的order by一次。
4、观测查询时间
Query_ID为1的是没有添加索引执行的语句,Query_ID为3的是添加索引后执行的语句,一个执行时间为0.013秒,一个执行时间为0.005秒,肯定是加上索引的快,我们来看看具体快在哪里
Query_ID为1的sql语句执行详细耗时图:
Query_ID为3的sql语句执行详细耗时图:
很明显,Query_ID1中的
Sorting result耗时0.012秒,而Query_ID2中的Sorting result只耗时0.000004秒,而这个Sorting result就是排序耗时。结论:索引对排序的速度是有一定的影响的,所以,在实际的开发中,要结合实际情况制定索引,并尽可能将排序字段添加至索引中。
更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL索引操作技巧汇总》、《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总》
希望本文所述对大家MySQL数据库计有所帮助。
您可能感兴趣的文章
- 12-31hiredis从安装到项目实战操作
- 12-31phpmyadmin登录时怎么指定服务器ip和端口
- 12-31MySQL线上死锁分析实战
- 12-31MySQL 触发器的使用和理解
- 12-31MySQL 字段默认值该如何设置
- 12-31Redis主从同步配置的方法步骤(图文)
- 12-31MySQL 字符串拆分操作(含分隔符的字符串截取)
- 12-31redis 交集、并集、差集的具体使用
- 12-31MySQL精讲之二:DML数据操作语句
- 12-31PostgreSQL判断字符串是否包含目标字符串的多种方法


阅读排行
推荐教程
- 12-07mysql中外链接是什么意思?
- 12-23PL/SQL登录Oracle数据库报错ORA-12154:TNS:无法解析指定的连接标识符
- 12-07mysql数据库表格怎么建立
- 12-05mysql的事务,隔离级别和锁用法实例分析
- 12-19Redis中实现查找某个值的范围
- 12-11mysql代码执行结构实例分析【顺序、分支、循环结构】
- 12-15浅析mysql迁移到clickhouse的5种方法
- 12-08添加mysql的用户名和密码是什么语句?
- 12-07mysql的数据类型有哪些?
- 12-23详解Oracle游标的简易用法









