mysql索引
Posted 长毛的茄子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql索引相关的知识,希望对你有一定的参考价值。
mysql 进行范围查询是并没有用到字段中的索引,是什么原因呢?
建立数据表:
CREATE
TABLE
IF
NOT
EXISTS `
index
` (
`id`
bigint
(20)
NOT
NULL
AUTO_INCREMENT,
`pp`
varchar
(64)
COLLATE
utf8_unicode_ci
NOT
NULL
,
`fid`
smallint
(6)
NOT
NULL
,
`
time
`
int
(12)
NOT
NULL
,
`threadid-floor`
varchar
(32)
COLLATE
utf8_unicode_ci
NOT
NULL
,
PRIMARY
KEY
(`id`),
KEY
`
index
` (`pp`,`fid`,`
time
`),
KEY
`pp` (`pp`),
KEY
`
time
` (`
time
`)
) ENGINE=InnoDB
DEFAULT
CHARSET=utf8
COLLATE
=utf8_unicode_ci COMMENT=
‘用户搜索‘
AUTO_INCREMENT=62878612 ;
然后使用下面sql查询:
explain select `threadid-floor` from `index` force index(`time`) where `time`>1370304000;
发现并没有用到索引,
总结:
mysql是否根据首次索引条件查出来的主键进行二次查找,也是要看查询出来的数量级,如果查询出来的数据量接近全表的数据量,就会全表扫描,否则根据第一次查询出来的主键进行二次查找,具体更具explain等进行测试.
在这么情况下,mysql不会使用索引
以上是关于mysql索引的主要内容,如果未能解决你的问题,请参考以下文章
javascript UV Index Monitor App订阅PubNub并显示UV索引值。博文的代码片段。在这里查看项目:https:// githu
c_cpp UV Index Indicator订阅PubNub并使用颜色显示UV索引值。博文的代码片段。在这里查看项目:https:/