美文网首页
如何创建索引

如何创建索引

作者: 小炉炉 | 来源:发表于2017-10-09 19:34 被阅读13次

索引通俗点讲就好比是书中的目录一样,能加快检索者的观看速度。
那么如何创建索引,就显的十分重要。
首先创建索引,就需要先 创建表:

CREATETABLEmytable(  
idserial primary key,  
category_id int not null default0,  
user_id int not null default0,  
adddate int not null default0  
);

如果在查询时常用类似以下的语句:

SELECT * FROM mytable WHERE category_id=1;

最直接的应对之道,是为category_id建立一个简单的索引:

CREATE INDEX mytable_categoryid ON mytable (category_id);

OK.如果有不止一个选择条件呢?例如:

SELECT * FROM mytable WHERE category_id=1 AND user_id=2;

第一反应可能是,再给user_id建立一个索引。不好,这不是一个最佳的方法。可以建立多重的索引。

CREATE INDEX mytable_categoryid_userid ON mytable(category_id,user_id);

注意到在命名时的习惯了吗?使用"表名字段1名字段2名"的方式。很快就会知道为什么这样做了。

现在已经为适当的字段建立了索引,不过,还是有点不放心吧,可能会问,数据库会真正用到这些索引吗?测试一下就OK,对于大多数的数据库来说,这是很容易的,只要使用EXPLAIN命令:

EXPLAIN

SELECT * FROM mytable

WHERE category_id=1 AND user_id=2;

This is what Postgres 7.1 returns (exactlyasI expected)

NOTICE:QUERY PLAN:

Index Scan using mytable_categoryid_useridon

mytable(cost=0.00..2.02 rows=1 width=16)

EXPLAIN

相关文章

  • PHP题目分享与答案(2)

    2:索引分为哪些?如何创建索引?索引如何优化?A,B,C联合索引如何才能命中索引? MySQL索引分为主键索引,唯...

  • es基础,bboss使用

    1.创建索引 (1)如何只存储不索引:"index": false (2)如何只索引不存储:"excludes":...

  • elasticSearch

    CRUL索引 文档/索引/类型/id(指定或者自动生成)重点是如何创建索引

  • 如何创建索引

    索引通俗点讲就好比是书中的目录一样,能加快检索者的观看速度。那么如何创建索引,就显的十分重要。首先创建索引,就需要...

  • mysql 查询优化

    参考文章:mysql 如何优化left joinmysql 创建索引和删除索引mysql 查看索引 查看字符编码

  • MySQL--索引

    MySQL索引 查看索引 创建索引 创建唯一索引 创建主键索引 删除索引 删除主键 MySQL视图 创建视图 删除...

  • 17.Elasticsearch索引模板-1

    17.1 索引模板介绍 索引模板是告诉Elasticsearch如何在创建索引时配置索引的一种方法对于数据流,索引...

  • 数据库索引

    重点: 了解索引的概念,类型 掌握创建索引的方法 掌握如何修改,删除索引 索引 概念:索引是一个单独的,物理的数据...

  • mysql&redis(面试题记)

    mysql 1、多表连接2、子查询3、索引都有哪些,索引能解决什么问题 ,如何创建索引,建索引有什么原则,索引的底...

  • 如何通过索引让 SQL 查询效率最大化

    如何通过索引让 SQL 查询效率最大化 什么时候创建索引? 如果出现如下情况,可以创建索引。 字段的数值唯一性的限...

网友评论

      本文标题:如何创建索引

      本文链接:https://www.haomeiwen.com/subject/iigpyxtx.html