美文网首页
瀚高数据库----索引的使用

瀚高数据库----索引的使用

作者: 瀚高BLOG | 来源:发表于2017-10-18 14:41 被阅读0次

索引是把双刃剑,一方面,合理的索引可以大大提高数据库查询数据的效率;另一方面,索引也会增加数据库的管理负担。所以,如何使用索引是一件并不容易的事,我们需要根据实际场景决定使用什么样的索引。

简介

我们在数据库的使用中经常会遇到这种场景,查询一个有大量数据的表但返回结果只有一行数据或者几行数据,而不是要求返回全部结果。如果这个表没有索引,这条查询语句就会遍历整个表,然后查出需要的数据,这样效率太低。索引的建立相当于建立了一个目录,通过索引可以直接查询出需要的那几条数据,而不需要遍历全部数据。

使用

瀚高数据库提供多种索引的建立, B-tree、Hash、GiST、SP-GiST 、GIN 和 BRIN,每一种索引类型使用了一种不同的算法来适应不同类型的查询。这里我们重点说一下最常用的B-tree索引的建立。
一个索引可以定义在表的多个列上面,最多可以指定32个列(该限制可以在源代码文件pg_config_manual.h中修改,但是修改后需要重新编译PostgreSQL)。
例如:

create table test(
id integer,
name text,
sex char
)
create index testIndex on test(id,name);

当执行:select * from test where id=' ' and name = ' ' 时,此索引便会生效。而查询select * from test where id=' ' or name = ' '则不会生效。
PostgreSQL会自动为定义了一个唯一约束或主键的表创建一个唯一索引。
一个索引在每一个索引列上只能支持一种排序规则。如果需要多种排序规则,你可能需要多个索引。
例如:

CREATE TABLE test1c (
id integer,
content varchar COLLATE "x"
);

CREATE INDEX test1c_content_index ON test1c (content);

当执行SELECT * FROM test1c WHERE content > constant;时,上述索引将会加速查询。但对于有些查询条件,该索引则无效,比如下面这个查询:

SELECT * FROM test1c WHERE content > constant COLLATE "y";

可以新建一个对应的索引来提高查询效率:

CREATE INDEX test1c_content_y_index ON test1c (content COLLATE "y");

相关文章

  • 瀚高数据库----索引的使用

    索引是把双刃剑,一方面,合理的索引可以大大提高数据库查询数据的效率;另一方面,索引也会增加数据库的管理负担。所以,...

  • Mybatis Plus 同时支持不同数据源DatabaseId

    项目开始的时候我们使用的是MySQL,但是一些客户要求使用国产瀚高数据库,所以只能同时支持MySQL和瀚高数据库(...

  • Sql索引优化—转载

    数据库索引使用方式 使用索引是提高数据库查询效率的主要方式,下面从索引结构,索引类型,索引操作,命中索引几个方面来...

  • 瀚高数据库----数据类型

    瀚高数据库有着丰富的本地数据类型可用。用户可以使用CREATE TYPE命令为 数据库增加新的数据类型。具体如下:...

  • MySQL中的索引——概念篇

    使用索引的目的 使用索引的目的是提高数据库查询的效率。索引是怎么提高数据库查询的效率的呢?举个通俗的例子,查字典。...

  • mysql基本操作

    创建数据库、使用数据库、查看表格: 创建表格: 插入数据到表格: 查看数据: 创建索引: 使用索引的好处: 右侧通...

  • 数据库_索引

    二、索引 1.什么是索引? 何为索引:数据库索引,是数据库管理系统中一个排序的数据结构,索引的实现通常使用B树及其...

  • mysql数据库索引

    添加索引的命令:1、添加普通索引 2、添加唯一索引 3、删除索引 4、查询某张数据库表的索引使用 5、EXPLAI...

  • 索引

    什么是索引?索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。索引分为:...

  • 超牛的MySQL索引知识点详解,不用再去找别的了

    数据库索引,相信大家都不陌生吧。 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中...

网友评论

      本文标题:瀚高数据库----索引的使用

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