php复合索引,关于复合索引和单独索引的一个问题
復合索引
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
本文原創發布php中文網,轉載請注明出處,感謝您的尊重!
總結
以上是生活随笔為你收集整理的php复合索引,关于复合索引和单独索引的一个问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: fastdfs php client,c
- 下一篇: 塔吊指挥操作证要怎么考?