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

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

时间:2024-09-27 14:25:50浏览次数:1  
标签:sell info full name 创建 GaussDB 索引 SQL

一、前言

随着互联网的快速发展,数据量呈现爆炸式增长。如何高效地管理和查询这些数据成为了企业面临的重要问题。而数据库索引作为数据库优化的关键手段之一,对于提高数据库性能和查询效率具有重要作用。本文将介绍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云数据库的索引创建、查询、删除等操作。

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

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

——结束

标签:sell,info,full,name,创建,GaussDB,索引,SQL
From: https://www.cnblogs.com/xiaoxu0211/p/18435611

相关文章

  • GaussDB整体性能慢分析
    @目录问题描述问题现象告警业务影响原因分析分析步骤分析定位方法步骤一步骤二步骤三步骤四CPU满I/O满或者I/O异常内存满网络异常步骤五并发问题数据库配置问题异常等待事件长时间性能下降短时性能抖动不优SQL问题描述整体性能慢。不满足客户作业对时延要求或者不满足客户预期。......
  • GaussDB SQL调优:建立合适的索引
    ​背景GaussDB是华为公司倾力打造的自研企业级分布式关系型数据库,该产品具备企业级复杂事务混合负载能力,同时支持优异的分布式事务,同城跨AZ部署,数据0丢失,支持1000+扩展能力,PB级海量存储等企业级数据库特性。拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关......
  • GaussDB分区表查询性能异常分析
    问题现象使用分区表进行相关查询业务,SQL性能慢。原因分析导致分区表业务慢的常见原因有以下几种:分区索引失效,顺序扫描导致的SQL性能慢分区表无法进行分区剪枝导致的SQL性能慢SQL计划选择非最优导致的SQL性能慢处理方法判断是否存在索引异常的行为部分分区DDL如果不带UP......
  • GaussDB内存过载分析
    问题现象数据库进程内存占比较高长时间占比较高观察监控平台内存占用的变化曲线,无论当前数据库是否有业务在运行,数据库进程内存占总机器内存的比例长时间处于较高状态,且不下降。执行作业期间占比较高数据库进程在没有业务执行时,内存使用持续处于较低的状态,当有业务执行时,内......
  • 整合了mybatis-plus后,就不用再xml文件里面写sql了吗
    整合了mybatis-plus后,就不用再xml文件里面写sql了吗使用mybatis-plus接口这是一个根据特定条件筛选学生信息的接口,用户可以通过姓名,年龄,性别,爱好来筛选学生,可以都选也可以都不选。这就迫使在java代码中添加了很多if语句publicList<SysStudent>queryList(SysStudent......
  • 再识华为云数据库——GaussDB
    前言:华为云数据库GaussDB是一款拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。同时具有PB级海量数据存储、实时高效访问、自动化运维等特点,广泛应用于金融、电信、物流、电商、政......
  • 以学校数据模型为例,掌握在DAS下使用GaussDB
    @目录题目具体操作一、表的创建二、表数据的插入三、数据查询目的:这里以学校数据库模型为例,介绍GaussDB数据库、表等常见操作,以及SQL语法使用的介绍。题目假设A市B学校为了加强对学校的管理,引入了华为GaussDB数据库。在B学校里,主要涉及的对象有学生、教师、班级、院系和课程......
  • 通过公网连接GaussDB数据库实例
    @目录1.通过公网连接GaussDB1.1实验介绍1.1.1关于本实验1.1.2实验目的1.2购买GaussDB数据库(可选)1.3公网IP绑定1.3.1购买弹性公网IP1.3.2绑定GaussDB数据库2附录一:安装和配置JDK2.1下载并安装JDK2.2配置JDK环境变量本实验概览图1.通过公网连接GaussDB1.1实验介绍......
  • 如何通过DAS连接GaussDB
    @目录1实验介绍2实验目的3配置DAS服务4SQL使用入门1实验介绍本实验主要描述如何通过华为云数据管理服务(DataAdminService,简称DAS)来连接华为云GaussDB数据库实例,DAS是一款专业的简化数据库管理工具,提供优质的可视化操作界面,大幅提高工作效率,让数据管理变得既安全又简......
  • MySQL 8.0 为 Java 开发者提供了许多强大的新特性
    以下是一些关键点:1.通用表表达式(CTE):CTE允许您定义命名的临时结果集,这些结果集可以在后续的SELECT、INSERT、UPDATE、DELETE或CREATEVIEW语句中被引用。这对于编写复杂查询特别有用。WITHRECURSIVEemployee_hierarchyAS(SELECTid,name,manager_id,1ASlevelF......