关于复合索引和单独索引的一个问题
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中通过trigger_error触发PHP错误示例,trigger_errorphp
下一篇: android busybox:not found 问题和sh:can't access tty; job con
推荐阅读
-
关于复合索引和单独索引的一个问题
-
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的 任意个数之和 等于 target,并打印出所有结果的索引。
-
关于压缩的一个有关问题,ZipArchive在PHP5.2和PHP5.3用法不一样吗
-
部分排序,给定一个整数数组,编写一个函数,找出索引m和n,只要将索引区间[m,n]的元素排好序,整个数组就是有序的。
-
请教coreseek(Sphinx)问题:关于多个索引对应不同词库的问题,老大帮忙
-
sphinx增量索引的一个问题_php技巧
-
关于压缩的一个有关问题,ZipArchive在PHP5.2和PHP5.3用法不一样吗
-
sphinx增量索引的一个问题_PHP
-
关于groupby与层次化索引的联系和层次化标签的使用
-
关于包含函数表达式的复合索引优化查询