GaussDB云数据库SQL应用系列—索引管理

目录

一、前言

二、注意事项

三、索引创建

1、创建普通索引

2、创建唯一索引

3、创建多字段索引

4、创建部分索引

5、创建表达式索引

四、索引管理

1、查看索引信息

2、删除索引

总结

一、前言

随着互联网的快速发展,数据量呈现爆炸式增长。如何高效地管理和查询这些数据成为了企业面临的重要问题。而数据库索引作为数据库优化的关键手段之一,对于提高数据库性能和查询效率具有重要作用。本文将介绍GaussDB云数据库的索引创建和管理方法,并结合实际应用场景进行分析。

二、注意事项

索引建立在数据库表中的列上。因此,需要注意以下创建因素:

  • 在经常需要查询的列上创建,可以加快搜索的速度
  • 在作为主键的列上创建索引,强制该列的唯一性和组织表中数据的排列结构。
  • 在经常使用连接的列上创建索引,加快连接的速度。
  • 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的。
  • 在经常需要排序的列上创建索引,因为索引已经排序,查询时可以利用索引的排序,加快排序查询。
  • 为经常出现在关键字ORDER BY、GROUP BY、DISTINCT后面的字段建立索引。

说明:

  • 索引创建后,系统会主动判断何时引用索引。当系统认为使用索引比顺序扫描更快时,就会使用索引。
  • 索引创建后,会和表保持同步以保证能够准确地找到新数据,这样就增加了数据操作的负荷。因此需要定期清理无用的索引。

三、索引创建

创建一张测试表

--销售信息全量表(sell_info_full),
CREATE TABLE sell_info_full
(
 sell_id int PRIMARY KEY
,sell_date date not null
,goods_id char(20) not null
,goods_name char(20) not null
,goods_number int not null
,sell_goods_amount int not null
,etl_date date not null
);

1、创建普通索引

语法格式:

CREATE INDEX index_name ON table_name (column_name);
--例如,用户经常根据销售的商品编号(good_id)进行查询,那么可在sell_info_full表中创建一个名为idx_good_id的普通索引:
CREATE INDEX idx_good_id ON sell_info_full (goods_id);

2、创建唯一索引

语法格式:

CREATE UNIQUE INDEX unique_index_name ON table_name(column_name);
--例如,在sell_info_full表中创建一个名为idx_sell_id的唯一索引:
CREATE UNIQUE INDEX idx_sell_id ON sell_info_ful(sell_id);

3、创建多字段索引

语法格式:

CREATE INDEX more_column_index ON table_name(column_name1, column_name2);
--例如,用户经常根据销售的商品数量和商品金额范围进行查询访问,则可在sell_info_full表中创建一个多字段索引。
CREATE INDEX more_column_index ON sell_info_full(goods_number,sell_goods_amount);

4、创建部分索引

--如果经常需要查询“某个商品”,例如,goods_name=’商品名称’(替换成具体的名称),可以创建部分索引来提升查询效率。
CREATE INDEX part_index ON sell_info_full(goods_name) WHERE goods_name='商品名称';

5、创建表达式索引

--假如经常需要查询商品加个大于100元的商品销售信息,查询SQL如下(引用一个函数trunc):
SELECT * FROM sell_info_full WHERE trunc(sell_goods_amount)>100;

--创建表达式索引
CREATE INDEX fun_index ON sell_info_full(trunc(sell_goods_amount));

四、索引管理

1、查看索引信息

方式一:通过系统表PG_CLASS, 字段relkind=’i’,获取系统和用户定义的所有索引 

--获取系统和用户定义的所有索引
SELECT RELNAME FROM PG_CLASS WHERE RELKIND='i';

方式二:通过系统视图PG_INDEXES 获取

--例如,查看sell_info_full表中的索引信息:
SELECT * FROM PG_INDEXES  WHERE TABLENAME = 'sell_info_full' AND INDEXNAME IS NOT NULL;

 

2、删除索引

语法格式:

DROP INDEX [ IF EXISTS ] 
    index_name [, ...] [ CASCADE | RESTRICT ];
--例如,删除sell_info_full表中的idx_user_name索引:
DROP INDEX idx_good_id;

 

总结

本文结合一张测试表简单的介绍了GaussDB云数据库的索引创建、查询、删除等操作。

索引可以提高数据的访问速度,但同时也增加了插入、更新和删除操作的处理时间。所以创建索引是需要分析应用程序的业务处理、数据使用、经常被用作查询的条件或者被要求排序的字段来确定的。

通过合理地创建和维护索引,可以提高数据库性能和查询效率,为企业的数据管理和应用提供有力的支持。

——结束

优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/gaussdb/blog/10084928

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。