首页 > 后端开发 > php教程 > 关于复合索引和单独索引的一个问题

关于复合索引和单独索引的一个问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-06 20:37:48
原创
1227 人浏览过

复合索引
1,shopid ctime
EXPLAIN SELECT COUNT(*) FROM dc_order_menu_log WHERE shopid = 12 AND ctime > 1422720000
查询行数:4357

单独索引
分别建立索引shopid ctime
EXPLAIN SELECT COUNT(*) FROM dc_order_menu_log WHERE shopid = 12 AND ctime > 1422720000
key:shopid
查询行数:2362

问题1:为什么查询的影响行数有区别?

问题2:如果单独的索引查询的影响行数还少,在表中单独建立索立 这样的优缺点是什么??

回复内容:

复合索引
1,shopid ctime
EXPLAIN SELECT COUNT(*) FROM dc_order_menu_log WHERE shopid = 12 AND ctime > 1422720000
查询行数:4357

单独索引
分别建立索引shopid ctime
EXPLAIN SELECT COUNT(*) FROM dc_order_menu_log WHERE shopid = 12 AND ctime > 1422720000
key:shopid
查询行数:2362

问题1:为什么查询的影响行数有区别?

问题2:如果单独的索引查询的影响行数还少,在表中单独建立索立 这样的优缺点是什么??

其实综合来讲就是单索引与复合索引的区别不同问题

索引的目的是为了快速找到所需的记录

但复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引。

尤其当表的行数远远大于索引键的数目时,使用这种方式可以明显加快表的查询速度。

再说说为啥行数有区别,因为多索引是组合而成的。在shopid基础上再查询ctime
而单独索引 shopid与ctime分别查询,这样一旦数据量多了,会有微小差异。

相关标签:
php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
怎么学好php
来自于 1970-01-01 08:00:00
0
0
0
PHP扩展intl
来自于 1970-01-01 08:00:00
0
0
0
php数据获取?
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板