如何创建索引

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

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容