复合索引
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:如果单独的索引查询的影响行数还少,在表中单独建立索立 这样的优缺点是什么??
其实综合来讲就是单索引与复合索引的区别不同问题
BJXShop网上购物系统是一个高效、稳定、安全的电子商店销售平台,经过近三年市场的考验,在中国网购系统中属领先水平;完善的订单管理、销售统计系统;网站模版可DIY、亦可导入导出;会员、商品种类和价格均实现无限等级;管理员权限可细分;整合了多种在线支付接口;强有力搜索引擎支持... 程序更新:此版本是伴江行官方商业版程序,已经终止销售,现于免费给大家使用。比其以前的免费版功能增加了:1,整合了论坛
索引的目的是为了快速找到所需的记录
但复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引。
尤其当表的行数远远大于索引键的数目时,使用这种方式可以明显加快表的查询速度。
再说说为啥行数有区别,因为多索引是组合而成的。在shopid基础上再查询ctime
而单独索引 shopid与ctime分别查询,这样一旦数据量多了,会有微小差异。









