达梦数据库DM8-索引篇

目录

    • 一、前景
    • 二、名词
    • 三、语法
      • 1、命令方式创建索引
        • 1.1 创建索引空间
        • 1.2.1 创建普通索引并指定索引数据空间
        • 1.2.2 另一种没验证,官方写法
        • 1.3 复合索引
        • 1.4 唯一索引
        • 1.5 位图索引
        • 1.6 函数索引
      • 2、创建表时候创建索引
      • 3、可视化方式创建索引
        • 3.1 打开DM管理工具
        • 3.2 找到要创建索引的表,右击选择创建索引
        • 3.3. 选择规则及字段
        • 3.4. 选择数据储存位置
        • 3.5. 完成||验证
    • 四、示例
      • 1、创建一个索引表空间名为ind_student
      • 2、根据user_name, user_sex创建复合索引
      • 3、根据phone创建唯一索引

一、前景

 数据库索引是为了提高查询速度而对表字段附加的一种标识。简单来说,索引其实是一种数据结构。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。
 首先我们需要明白为什么索引会提高查询速度,数据库在执行一条SQL语句的时候,默认扫描方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少遍历匹配的行数,所以数据库索引能明显提高查询的速度。

下面列举几种适合建立索引的情况:

  1. 经常在where条件中作为查询条件的字段可以建立索引;
  2. 外键关联列可以建立索引;
  3. order by排序后面的字段可以建立索引;
  4. group by分组后的字段可以建立索引;

二、名词

  1. CREATE 创建标识
  2. OR REPLACE INDEX 后跟指定索引名称(模式+索引名)
  3. ON on后跟操作的表,及创建的字段
  4. STORAGE 指定表空间关键字
  5. UNIQUE 唯一索引
  6. INDEX 普通索引

三、语法

1、命令方式创建索引

1.1 创建索引空间
create tablespace ind_tbs datafile '****/ind_**.dbf' size 32 autoextend on next 10 maxsize 2000;
1.2.1 创建普通索引并指定索引数据空间
create index ind_name on TEST.student(user_name) tablespace ind_tbs;
1.2.2 另一种没验证,官方写法
CREATE OR REPLACE INDEX "TEST"."index_p_b_c" ON "TEST"."student" ( "user_name" ASC, "user_sex" ASC) STORAGE ( ON "ind_tbs", CLUSTERBTR );
1.3 复合索引
create index ind_name_sex on TEST.student(user_name,user_sex) tablespace ind_tbs;
1.4 唯一索引
create unique index ind_phone on TEST.student(phone);
1.5 位图索引
1.6 函数索引

2、创建表时候创建索引

-- 创建表空间
create tablespace "student" datafile '***/student.DBF' size 32 autoextend on maxsize 16777215 CACHE = NORMAL;
-- 也可以创建一个索引空间分开存放(这里就把索引数据和数据放在一起了)
CREATE TABLE "TEST"."student"
("id" BIGINT NOT NULL,"user_name" VARCHAR(16) NOT NULL,"user_sex" INTEGER NOT NULL,"phone" VARCHAR NOT(11) NULL,"create_by" BIGINT DEFAULT 0 NOT NULL,"create_time" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,"update_by" BIGINT DEFAULT 0 NOT NULL,"update_time" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() NOT NULL,NOT CLUSTER PRIMARY KEY("id"),  -- 默认主键就是唯一索引UNIQUE("phone") -- 创建手机号字段为唯一索引
) STORAGE(ON "student", CLUSTERBTR) ;COMMENT ON TABLE "TEST"."student" IS '成本拆分记录';
COMMENT ON COLUMN "TEST"."student"."id" IS '主键';
COMMENT ON COLUMN "TEST"."student"."user_name" IS '姓名';
COMMENT ON COLUMN "TEST"."student"."user_sex" IS '性别';
COMMENT ON COLUMN "TEST"."student"."phone" IS '手机号';
COMMENT ON COLUMN "TEST"."student"."create_by" IS '创建人id';
COMMENT ON COLUMN "TEST"."student"."create_time" IS '创建时间';
COMMENT ON COLUMN "TEST"."student"."update_by" IS '修改人id';
COMMENT ON COLUMN "TEST"."student"."update_time" IS '修改时间';-- 创建复合索引
CREATE OR REPLACE  INDEX "TEST"."index_phone" ON "TEST"."student"("user_name" ASC,"user_sex" ASC) STORAGE(ON "student", CLUSTERBTR) ;

3、可视化方式创建索引

3.1 打开DM管理工具

在这里插入图片描述

3.2 找到要创建索引的表,右击选择创建索引

在这里插入图片描述

3.3. 选择规则及字段

在这里插入图片描述

3.4. 选择数据储存位置

在这里插入图片描述

3.5. 完成||验证

在这里插入图片描述

四、示例

一张student表,含有id,user_name, user_sex,phone …字段
** 以下操作示例:

  • – TEST 为模式
  • – student 为表名称

1、创建一个索引表空间名为ind_student

create tablespace ind_student datafile '****/ind_student.dbf' size 32 autoextend on next 10 maxsize 2000;

2、根据user_name, user_sex创建复合索引

create index ind_name_sex on TEST.student(user_name,user_sex) tablespace ind_student;

3、根据phone创建唯一索引

create unique index ind_phone on TEST.student(phone);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3250530.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Java IO流(详解)

目录 1.概述 2.File文件类 2.1 文件的创建操作 2.2 文件的查找操作 3. File里面一些其他方法 3.1 经典案例 4. IO流 4.1 概念 4.2 IO分类 4.3 字节输出流 4.4 字节输入流 4.5 案例 4.6 字符输出流 4.7 字符输入流 4.8 案例 4.9 处理流--缓冲流 4.10 对象流: 1.…

源代码加密软件哪家好?2024八款源代码加密软件排行榜

源代码加密软件哪家好?2024八款源代码加密软件排行榜 在数字化时代,源代码作为软件开发的生命线,其安全性对于企业来说至关重要。源代码加密软件是保护这一宝贵资产的有力工具,它们通过加密技术防止源代码被非法访问、复制或修改…

人、智能、机器人……

在遥远的未来之城,智能时代如同晨曦般照亮了每一个角落,万物互联,机器智能与人类智慧交织成一幅前所未有的图景。这座城市,既是科技的盛宴,也是人性与情感深刻反思的舞台。 寓言:《智光与心影》 在智能之…

字节面试:如何让单机下Netty支持百万长连接?

最近有同学在面试遇到了一道非常有深度的面试题: 如何让单机下Netty支持百万长连接? 当时在群里问小北,我发现我也没有系统化的梳理过这个问题,所以一时也没有回答的特别好。 痛定思痛的我赶紧去各种搜集资料,系统化的…

(三)原生js案例之滚动到底部解锁按钮状态

业务主要是注册页面&#xff0c;有很长的条款需要用户去读&#xff0c;必须确认用户是不是看到全部的条款&#xff0c;这个场景下可以使用 效果 代码实现 必要的css <style>*{padding: 0;margin: 0;}ul{list-style: none;width: 330px;height: 100%;/* height: 200px;…

kotlin compose 实现应用内多语言切换(不重新打开App)

1. 示例图 2.具体实现 如何实现上述示例,且不需要重新打开App ①自定义 MainApplication 实现 Application ,定义两个变量: class MainApplication : Application() { object GlobalDpData { var language: String = "" var defaultLanguage: Strin…

DA-SVM多变量分类预测|蜻蜓优化算法-支持向量机|Matalb

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、原理介绍&#xff1a; 四、完整程序下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matlab平台编译&a…

【LeetCode】十四、回溯法:括号生成 + 子集

文章目录 1、回溯法2、leetcode22&#xff1a;括号生成3、leetcode78&#xff1a;子集 1、回溯法 使用场景&#xff0c;如找[1&#xff0c;2&#xff0c;3]的所有子集&#xff1a; 2、leetcode22&#xff1a;括号生成 以n2为例&#xff0c;即两个左括号、两个右括号&#xff0c…

小白操作Typora快捷键操作day01

小白操作Typora快捷键操作day01 一、标题 建议先写标题内容&#xff0c;然后不需要选中直接Ctrl1~6对应所需要的标题&#xff0c;然后回车 ctrl""级别增加 ctrl1~6对应级别的标题&#xff08;ctrl0是普通文本&#xff09; 二、段落 1、换行 笑呵呵&#xff08…

科技论文在线--适合练习期刊写作和快速发表科技成果论文投稿网站

中国科技论文在线这个平台可以作为练手的一个渠道&#xff0c;至少可以锻炼一下中文写作&#xff0c;或者写一些科研方向的简单综述性文章。当然&#xff0c;如果你的老师期末要求也是交一份科技论文在线的刊载证明的话&#xff0c;这篇文章可以给你提供一些经验。 中国科技论…

政安晨【零基础玩转各类开源AI项目】基于Ubuntu系统部署Hallo :针对肖像图像动画的分层音频驱动视觉合成

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 零基础玩转各类开源AI项目 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本文目标&#xff1a;在Ubuntu系统上部署Hallo&#x…

高频面试题-CSS

BFC 介绍下BFC (块级格式化上下文) 1>什么是BFC BFC即块级格式化上下文&#xff0c;是CSS可视化渲染的一部分, 它是一块独立的渲染区域&#xff0c;只有属于同一个BFC的元素才会互相影响&#xff0c;且不会影响其它外部元素。 2>如何创建BFC 根元素&#xff0c;即HTM…

【好玩的经典游戏】Docker环境下部署赛车小游戏

【好玩的经典游戏】Docker环境下部署赛车小游戏 一、小游戏介绍1.1 小游戏简介1.2 项目预览二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 安装Docker环境3.2 检查Docker服务状态3.3 检查Docker版本3.4 检查docker compose 版本四、构建容器镜像4.1 下…

基于springboot新生宿舍管理系统

系统背景 在当今高等教育日益普及的时代背景下&#xff0c;高校作为知识传播与创新的重要基地&#xff0c;其基础设施的智能化管理显得尤为重要。新生宿舍作为大学生活的起点&#xff0c;不仅是学生日常生活与学习的重要场所&#xff0c;也是培养学生独立生活能力和团队合作精神…

IP溯源工具--IPTraceabilityTool

工具地址&#xff1a;xingyunsec/IPTraceabilityTool: 蓝队值守利器-IP溯源工具 (github.com) 工具介绍&#xff1a; 在攻防演练期间&#xff0c;对于值守人员&#xff0c;某些客户要求对攻击IP都进行分析溯源&#xff0c;发现攻击IP的时候&#xff0c;需要针对攻击IP进行分析…

【electron6】浏览器实时播放PCM数据

pcm介绍&#xff1a;PCM&#xff08;Puls Code Modulation&#xff09;全称脉码调制录音&#xff0c;PCM录音就是将声音的模拟信号表示成0,1标识的数字信号&#xff0c;未经任何编码和压缩处理&#xff0c;所以可以认为PCM是未经压缩的音频原始格式。PCM格式文件中不包含头部信…

单片机程序设计模式

RTOS:多任务拆分交叉执行 Q:状态机和多任务模式有什么区别 Q:任务创建和任务调度器是什么&#xff1f; 裸机程序的设计模式可以分为&#xff1a;轮询、前后台、定时器驱动、基于状态机。前面三种方 法都无法解决一个问题&#xff1a;假设有 A、B 两个都很耗时的函数&#xf…

基于牛顿-拉夫逊优化算法(Newton-Raphson-based optimizer, NBRO)的无人机三维路径规划

牛顿-拉夫逊优化算法(Newton-Raphson-based optimizer, NBRO)是一种新型的元启发式算法&#xff08;智能优化算法&#xff09;&#xff0c;该成果由Sowmya等人于2024年2月发表在中科院2区Top SCI期刊《Engineering Applications of Artificial Intelligence》上。 1、算法原理…

前端开发_注意事项

无论使用哪种框架开发&#xff08;vue、react、...&#xff09;&#xff0c;前端开发终究是结构&#xff08;HTML&#xff09;、样式&#xff08;CSS&#xff09;、逻辑&#xff08;用户操作数据处理对接后端API&#xff09;。那么开发过程中都需要注意哪些事项&#xff0c;本文…

VScode:前端项目中yarn包的安装和使用

一、首先打开PowerShell-管理员身份运行ISE 输入命令&#xff1a; set-ExecutionPolicy RemoteSigned 选择“全是”&#xff0c;表示允许在本地计算机上运行由本地用户创建的脚本&#xff0c;没有报错就行了 二、接着打开VScode集成终端&#xff0c;安装yarn插件 输入 npm ins…