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,
  `timeint(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:/

部分代码片段

linux中怎么查看mysql数据库版本

活动结果片段索引超出范围:0x20001

从mysql的片段中加载ListView