sql索引

【图形学】Loop细分算法及半边结构实现(C++) 文章目录Loop 细分算法介绍增加新顶点更新旧顶点算法实现半边结构半边结构的表示方法半边结构的构造方法创建所有顶点创建所有面及半边半边结构的使用 Loop 细分 顾名思义,网格细分是将粗糙网格精细化的过程,如下动图。Loop细分是众多网格细分算法的一种,Loop细分仅仅对三角形网格模型有效。值得注意的是,虽然叫Loop细分,但是不能理解为“循环”细分,叫这个名字是因为作者的名字是这个而已。 下面是一个粗糙的兔子模型1000个面,进行3次细分 算法介绍 Loop细分算法主要分两步进行 增加新顶点:增加 阅读详情
SQL中的索引分为两种,一种为聚集索引和非聚集索引,下面介绍两者的异同。

一、聚集索引与非聚集索引:

  1、聚集索引:
  聚集索引的意思可以理解为顺序排列,比如一个主键自增的表即为聚集索引,即id为1的存在于第一条,id为2的存在于第二条...假使数据库中是使用数组来存放的这张表中的数据,那么如果我需要查找第100条,那么直接第一条数据的地址加上100即为第一百条的地址,一次就能查询出来。
  因为数据库中的数据只能按照一个顺序进行排列,所以聚集索引一个数据库只能有一个。在mysql中,不能自己创建聚集索引,主键即为聚集索引,如果没有创建主键,那么默认非空的列为聚集索引,如果没有非空的列那么会自动生成一个隐藏列为聚集索引。
  所以一般在mysql中,我们创建的主键即为聚集索引,数据是按照我们的主键顺序进行排列。所以在根据主键进行查询时会非常快。
  
 2、非聚集索引:
 非聚集索引可以简单理解为有序目录,是一种以空间换取时间的方法。举个例子,在一个user表中,有一个id_num,即身份号,此不为主键id,那么这些数据在存储的时候都是无序的,比如
  id为1的id_num为100,id为2的id_num为97,id为3的id_num为98,id为4的id_num为99,id为5的id_num为96。。。id为67的id_num为56。。。
  那么如果我要查找id_num为56的人,那么只能一条一条的遍历,n条就需要查询n次,时间复杂度为O(n),这是非常耗费性能的。

  所以,现在就需要为id_num增加非聚集索引,添加了非聚集索引后,会给id_num进行排序(内部使用结构为B+树),并且排序后,我只需要查询此目录(即查询B+树),很快就知道为id为56的在数据库中的第67条,而不需要在去遍历表中的所有数据。
  所以,在非聚集索引中,不重复的数据越多,那么索引的效率越高。
 

二、索引的操作:

  我们平常在数据库中使用的索引一般非聚集索引,下面介绍其使用方法:

1、创建索引:
1.1、创建普通索引:
模式:
CREATE INDEX 索引名 ON 表名(列名1,列名2,...);
或者
修改表: ALTER TABLE 表名ADD INDEX 索引名 (列名1,列名2,...);
或者
创建表时指定索引:CREATE TABLE 表名 ( [...], INDEX 索引名 (列名1,列名 2,...) );

eg:
CREATE INDEX name_index ON index_test(name);
此为在index_test表上的name列上创建一个索引name_index。

测试的表为:
CREATE TABLE index_test (
id INT  NOT NULL,
    name VARCHAR(50),
    idNum INT,
    PRIMARY KEY (id)
);

1.2、创建唯一索引:
表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique
下面三种模式都可以创建唯一索引:
  1、创建索引:CREATE UNIQUE INDEX 索引名 ON 表名(列的列表);
  2、在表上增加索引:ALTER TABLE 表名ADD UNIQUE 索引名 (列的列表);
  3、创建表时指定索引:CREATE TABLE 表名( [...], UNIQUE 索引名 (列的列表) );
eg:
 CREATE UNIQUE INDEX id_num_index ON index_test(idNum);
也可以写成下面的形式:
 ALTER TABLE index_test ADD UNIQUE id_num_index(idNum);
此为在index_test表的idNum列上创建一个唯一索引id_num_index

在创建了唯一索引之后,列中即不能重复,比如,现在我给表中插入一条重复的值,会报:
Error Code: 1062. Duplicate entry '3' for key 'id_num_index'
即在id_num_index唯一索引上出现了重复。

  2、删除索引:
以下两种模式都可以删除索引:

DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name

eg:
DROP INDEX name_index ON index_test;
此为删除在index_test表上的name_index索引                                             

  3、查看索引:
    SHOW INDEX FROM index_test;
即返回index_test表中的所有索引。

在返回的字段中,

Table:表的名称
Non_unique:是否不唯一,0为唯一,1不为唯一
Key_name:索引的名称
Seq_in_index:索引中的列序列号,从1开始
Column_name:列名称
Collation:列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)。
Cardinality:索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。
Sub_part:如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。
Packed:指示关键字如何被压缩。如果没有被压缩,则为NULL。
Null:如果列含有NULL,则含有YES。如果没有,则该列含有NO。
Index_type:用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)。
Comment:更多评注。

三、索引的选择原则:

  非聚集索引在数据库创建、增加、删除、修改的时候都需要作出相应的修改,所以,使用索引也是有一定的原则,即:

  1、较频繁的作为查询条件的字段应该创建索引
  2、重复太多的字段不适合单独创建索引,即使频繁作为查询条件
  3、不会出现在WHERE子句中的字段不应该创建索引

 以下两种情况不建议使用索引:
  1、表的记录比较少,比如只有几百,一千条记录,那么没必要建立索引,直接全表查询即可。
  2、不重复的字段越多,那么索引的价值越高,查看不重复的字段占总体的比例可以使用下面的sql语句:
    SELECT count(DISTINCT(name))/count(*) AS Selectivity FROM index_test;

  比如上面这个sql就是判断index_test表中name字段中不重复的值占整体的比例,这个比例应该在(0,1]之间,这个数值越大,越应该使用索引。

单片机通过蜂鸣器播放任意音乐代码实现(2):音乐单片机代码自动生成 单片机通过蜂鸣器播放任意音乐代码实现(2):音乐单片机代码自动生成 上一节我们已经构建了基于51单片机的蜂鸣器音乐播放环境,接下来只需要手动或者自动添加音乐代码便能实现不同音乐的播放。当然,第二节将告诉你如何自动生成这些音乐代码。 所用软件 MuseScore 3;用于转换MID文件为musicxml文件 C/C++ IDE(本文为Visual Studio 2019) 1.生成音乐对应的MID文件 可以直接下载mid格式音乐文件,也可以将某段音乐转换为MID文件。最好是直接使用mid格式音乐文件,可 阅读详情

相关推荐

INCA基础教程

以软件自带Demo为例记录INCA学习过程,主要内容包括测量与标定。

yunqianrui的博客 6万+

SQL之SQL索引

索引(index)是帮助MysQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。

LP'S Blog 1万+

51单片机定时器的原理、应用与编程实现

本文系统介绍了51单片机定时器的基本原理与应用。首先阐述了定时器的工作原理,包括定时模式和计数模式的区别。然后详细讲解了定时器的四种工作模式(方式0-方式3)及其适用场景,并分析了相关寄存器(TMOD、TCON、THx/TLx)的功能设置。文章还给出了定时器编程的具体步骤,包括初始化、计数初值计算和示例代码。最后通过LED闪烁、PWM波形产生、脉冲计数等实际应用案例,展示了定时器的多样化应用。掌握这些知识对嵌入式系统开发具有重要意义。

2501_91227323的博客 1524

SQL的索引详细介绍

文章目录 前言 一、MySQL索引 1、聚集索引(主键索引) 2、二级索引(辅助索引) 3、基数、选择性、回表 二、MySQL扩展 总结 前言 大多数性能问题都和SQL语句有关,本文主要介绍了MySQL中的索引以及索引的重要性。 一、MySQL索引 索引的定义:在关系型数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指...

阑珊处的秋月博客 2万+

深度学习分类任务中,正负样本比例失衡的5种实战解决方案(附代码)

本文深入探讨了深度学习分类任务中正负样本比例失衡的5种实战解决方案,包括智能采样技术、动态数据增强、损失函数工程、模型架构创新和训练策略优化。针对信用卡欺诈检测、医疗诊断等场景,提供了详细的代码实现和评估方法,帮助开发者有效解决样本不平衡问题,提升模型在真实场景中的表现。

h9j8k7l6m5n的博客 426

如何在SpringBoot中实现AI 流式输出?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1484

【数据库】SQL-索引

在数据库中,索引是优化查询性能的重要工具。本文将深入介绍SQL索引的作用、类型以及使用注意事项,帮助您理解如何在数据库中充分利用索引来提升查询效率。二、什么是SQL索引SQL索引是用于加快数据库查询的数据结构。它是一个存储在表格中的特殊数据结构,用来加速对数据库表的某一列或多列的查找、排序和操作。SQL索引的创建可以提高查询性能,减少查询时间,同时还可以帮助唯一性约束和外键关系的实现。索引可以使用单列或多列组成,可以是唯一的或非唯一的,可以使用B-tree、哈希表、红黑树等不同的算法实现。

山赶着山,山山漫漫结成关 5029

A算法的蒙特卡洛树搜索

A*算法的蒙特卡洛树搜索 作者:禅与计算机程序设计艺术 1. 背景介绍 在人工智能和游戏开发领域,搜索算法是一个非常重要的研究方向。其中A算法和蒙特卡洛树搜索是两种广泛应用的经典算法。A算法是一种启发式搜索算法,通过评估各个节点到目标节点的启发式代价来引导搜索方向,在

AI天才研究院 1749

SQL——索引

在关系型数据库中,索引是一种单独的、物理上的对数据库表中的一列或多列的值进行排序的一种存储结构,他是某个表中的一列或着若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单(类似于图书目录,通过图书页码迅速找到所需内容)。一个索引是存储的表中一个特定列的值数据结构。索引是在表的列上创建。索引包含一个表中列的值,并且这些值存储在一个数据结构中。简单来说,不需要加内存,不用改程序,不用调SQL,查询速度就可以提高百倍千倍。:提高数据的检索速度,降低数据排序的成本。:会降低更新表的速度。

Wen先森的博客 9715

Altium Designer(AD)PCB拼版——两种方法教程

本文详细介绍了PCB拼版的设计要点与操作方法。主要内容包括:拼版目的(解决小尺寸夹持问题、提高利用率、降低成本)和三大连接方式(V-CUT、邮票孔、空心连接条)的特点与参数设置;工艺边设计规范(宽度、定位孔、Mark点等要求);拼版尺寸限制与常见错误检查;以及两种具体拼版操作方法(特殊粘贴和拼版阵列),并附有工艺边、定位孔、Mark点的绘制步骤示意图。同时提供了硬件工程师笔试面试相关资源链接。全文系统阐述了PCB拼版的核心技术和操作流程,为电子设计人员提供了实用指导。

XU157303764的博客 7609

专栏三:解析spatialCNV的使用

文章Spatially resolved clonal copy number alterations in benign and malignant tissue发在natur

m0_58549466的博客 1252

【SQL】深入了解 SQL 索引:数据库性能优化的利器

SQL 索引是一种特殊的数据结构,通过指针将数据位置与索引键关联起来,使得查询操作更加高效,用于提高数据库表中数据检索的速度。可以将索引看作是书籍的目录,帮助快速找到所需的信息。合理地创建和使用索引,可以大幅度提升查询效率,但过多或不当的索引会影响数据修改的性能。SQL 索引是提高数据库性能的重要工具,但需要合理使用。了解索引的类型、工作原理及其优缺点,将帮助开发者在设计数据库时做出更明智的决策。本文将系统地介绍 SQL 索引的相关知识,包括索引的种类、创建方法、使用场景及其维护与优化技巧。

人生苦短,睡觉要紧,睡醒再说 5799

1、机器学习在环境科学中的应用与经典数据分析基础

本文介绍了机器学习在环境科学中的广泛应用,包括卫星遥感、气候预测、空气质量预报等领域,并系统回顾了经典数据分析的基本概念,如期望、方差、协方差和相关性及其显著性检验。同时,文章阐述了贝叶斯定理、判别函数与分类、聚类分析等方法的原理与应用,强调了经典统计方法与机器学习技术的互补关系。最后展望了未来环境科学中数据分析的发展方向,强调多学科融合与方法创新的重要性。

stone的博客 145

SQL索引详解

SQL中的索引分为两种,一种为聚集索引和非聚集索引,下面介绍两者的异同。 一、聚集索引与非聚集索引:   1、聚集索引:   聚集索引的意思可以理解为顺序排列,比如一个主键自增的表即为聚集索引,即id为1的存在于第一条,id为2的存在于第二条...假使数据库中是使用数组来存放的这张表中的数据,那么如果我需要查找第100条,那么直接第一条数据的地址加上100即为第一百条的地址,一次就能查询

HappyHeng的博客 5万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SQL 建立索引及优化索引

CREATE INDEX mycolumn_index ON mytable (myclumn)这个语句建立了一个名为mycolumn_index的索引。你可以给一个索引起任何名字,但你应该在索引名中包含所索引的字段名,这对你将来弄清楚建立该索引的意图是有帮助的。注意:在本书中你执行任何SQL语句,都会收到如下的信息:This command did not return data,and it

林子的博客 3642

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SQL中的索引

今天面试问到一个东西——索引,我懵逼了,只知道这东西可以进行sql优化,但是根本不知道其中的原理。。。 原文:(https://www.cnblogs.com/hyd1213126/p/5828937.html) 实际上,索引可以理解成一种特殊的目录。微软的SQL Server提供了两种索引:聚集索引(也可称为聚类索引、簇集索引)和非聚集索引(当然也可以称为非聚类索引、非簇集索引)。下面...

第二颗大白菜 9936

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SQL | SQL 索引

例如,如果想要查阅一本书中与某个特定主题相关的所有页面,你会先去查询索引(索引按照字母表顺序列出了所有主题),然后从索引中找到一页或者多页与该主题相关的页面。创建索引需要使用 CREATE INDEX 语句,该语句允许对索引命名,指定要创建索引的表以及对哪些列进行索引,还可以指定索引按照升序或者降序排列。这种情况下,索引会阻止列中(或者列的组合,其中某些列有索引)出现重复的条目。表示该列在索引中的位置,如果索引是单列的,则该列的值为 1;如果索引是组合索引,则该列的值为每列在索引定义中的顺序。

weixin_72525373的博客 1857

掌握4种SQL索引类型,剖析索引原理

介绍SQL索引,并通过示例讲解如何进行使用。

u013643074的博客 2919

sql组合索引和独立索引_SQL索引概述和策略

sql组合索引和独立索引 A SQL index is used to retrieve data from a database very fast. Indexing a table or view is, without a doubt, one of the best ways to improve the performance of queries and application...

culuo4781的博客 1389

SQL中的索引是什么

在 SQL 中,索引(Index)是一种用于加速数据检索的数据库对象,通过建立特定的数据结构(如 B+树、哈希表等),帮助数据库系统快速定位目标数据。以下是关于索引的详细分类、工作原理、使用场景和最佳实践:

qq_31860647的博客 2519

SQL 索引

转贴:http://wenwen.soso.com/z/q120134455.htm 索引的作用就在于,为某个字段建立了索引之后,查询这个字段里面的数据的时候,效率更高,也就是快,比如create index abc on stu(age);为stu表的age字段建立了索引,那么查询时,select * from stu where age > 10;这个时候效率就高,主要体现在where...

weixin_30517001的博客 6095

SQL索引

什么是索引索引:SQL的索引有两种,聚集索引和非聚集索引。索引的目的:索引的主要目的是提高SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间。聚集索引和非聚集索引的区别1.聚集索引:索引顺序和表的物理排列顺序一致。例如a-z,是按照固定顺序排列的,是具有连续性的。 2.非聚集索引:索引顺序和数据库表的排列顺序不一致。例如索引“张”“弘”,可以根据他们共同的偏旁“弓”来索引,实际

it_xiaohui的博客 943

SQL Server 2012 索引

文章目录1.索引介绍2.创建索引①创建非聚集索引使用SSMS工具使用SQL方式②创建聚集索引使用SSMS工具使用SQL方式3.索引启用与禁用禁用索引使用SSMS工具使用SQL方式启用索引使用SSMS工具使用SQL方式4.查看索引5.删除索引使用SSMS工具使用SQL方式 1.索引介绍     索引是一种重要的数据库对象,它可以和基本表或者视图建立关联。当表的数据量比较大时,查询操作会比较耗时。建立...

柚子君的小窝 2280

SQL中索引的原理

 (一)深入浅出理解索引结构         实际上,您可以把索引理解为一种特殊的目录。微软的SQL   SERVER提供了两种索引:聚集索引(clustered   index,也称聚类索引、簇集索引)和非聚集索引(nonclustered   index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别:         其实,我们的汉语字典的正文本身就是一

lewisshi的专栏 1万+

sql语句创建索引

create index [index_mode] on [cn_name]([car_mode]); index_mode自定义索引名 cn_name表名 car_mode列名

weixin_40468982的博客 3万+

SQL Server 索引

SQL Server 索引

PinkCoder 2194
上一篇: jsp页面获取服务器时间
下一篇: in和exist区别
庆涛1992
博客等级 码龄9年 37粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值