mysql 创建,删除,修改索引

数据权限设计 随着IT新技术不断完善成熟,企业数字化建设得到全面的发展,数据将成为一个创造财富的重要来源,并且越来越多地被视为一项值得重视的企业资产。未来,很多企业之间的竞争,其实也是资源和数据竞争。那么针对数据资产,如何保障它的安全性呢?数据的权限管理无疑是必不可少的。数据权限从数据源来控制不同的用户能够查看、使用和授权不同的数据表数据(其实就是数据表行列的管控),就如同筑起了一道道护城墙,为数据安全提供了保障。 阅读详情

1.索引作用

在索引列上,除了有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。

例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。

SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3
此查询结果应该为1000行,每行包含3个相等的值。在无索引的情况下处理此查询,必须寻找3个表所有的组合,以便得出与WHERE子句相配的那些行。而可能的组合数目为1000×1000×1000(十亿),显然查询将会非常慢。

如果对每个表进行索引,就能极大地加速查询进程。利用索引的查询处理如下。

(1)从表t1中选择第一行,查看此行所包含的数据。
(2)使用表t2上的索引,直接定位t2中与t1的值匹配的行。类似,利用表t3上的索引,直接定位t3中与来自t1的值匹配的行。
(3)扫描表t1的下一行并重复前面的过程,直到遍历t1中所有的行。

在此情形下,仍然对表t1执行了一个完全扫描,但能够在表t2和t3上进行索引查找直接取出这些表中的行,比未用索引时要快一百万倍。
利用索引,MySQL加速了WHERE子句满足条件行的搜索,而在多表连接查询时,在执行连接时加快了与其他表中的行匹配的速度。

2.  创建索引

在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。

1.ALTER TABLE

ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。

ALTER TABLE table_name ADD INDEX index_name (column_list)
ALTER TABLEt able_name ADD UNIQUE(column_list)
ALTER TABLE table_name ADD PRIMARYKEY (column_list)

其中table_name是要增加索引的表名,column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。索引名index_name可选,缺省时,MySQL将根据第一个索引列赋一个名称。另外,ALTER TABLE允许在单个语句中更改多个表,因此可以在同时创建多个索引。

2.CREATE INDEX

CREATE INDEX可对表增加普通索引或UNIQUE索引。

CREATE INDEX index_name ON table_name (column_list)
CREATE UNIQUE INDEX index_name ON table_name (column_list) 

table_name、index_name和column_list具有与ALTER TABLE语句中相同的含义,索引名不可选。另外,不能用CREATE INDEX语句创建PRIMARY KEY索引。

3.索引类型

在创建索引时,可以规定索引能否包含重复值。如果不包含,则索引应该创建为PRIMARY KEY或UNIQUE索引。对于单列惟一性索引,这保证单列不包含重复的值。对于多列惟一性索引,保证多个值的组合不重复。

PRIMARY KEY索引和UNIQUE索引非常类似。事实上,PRIMARY KEY索引仅是一个具有名称PRIMARY的UNIQUE索引。这表示一个表只能包含一个PRIMARY KEY,因为一个表中不可能具有两个同名的索引。

可以这么理解:PRIMAR YKEY 就像我们每个人的身份证号,它在创建时就是唯一的,它是唯一标识你的身份的,是不能重复的!  UNIQUE 就像在你家里,你妈妈规定大毛是你的名字,二毛是你弟弟的名字,也是不能重复的!但是你妈妈也可以规定另一个不能重复的规则,比如,这个卧室是你的, 那个卧室是你弟弟的!也就是说,PRIMARY KEY 可以认为是一个标识,比如学号,而UNIQUE 仅仅是用户自定义的不能重复,你可以定义多个不能重复的列,比如邮箱不能重复,电话号码不能重复等等!

ALTER TABLE table_name ADD PRIMARY KEY (primary_name)

下面的SQL语句对students表在sid上添加PRIMARY KEY索引。

4.  删除索引

可利用ALTER TABLE或DROP INDEX语句来删除索引。类似于CREATE INDEX语句,DROP INDEX可以在ALTER TABLE内部作为一条语句处理,语法如下。

DROP INDEX index_name ON talbe_name
ALTERTABLE table_name DROP INDEX index_name
ALTERTABLE table_name DROPP RIMARYK

其中,前两条语句是等价的,删除掉table_name中的索引index_name。
第3条语句只在删除PRIMARY KEY索引时使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。
如果从表中删除了某列,则索引会受到影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。

5.查看索引

show index from tblname;
show keys from tblname;

6.索引创建的时机:

    需要在什么情况下建立索引呢?一般来说,在WHERE和JOIN中出现的列需要建立索引,但也不完全如此,因为MySQL只对<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE才会使用索引。例如:SELECT t.Name  FROM mytable t LEFT JOIN mytable m    ON t.Name=m.username WHERE m.age=20 AND m.city='郑州' 此时就需要对city和age建立索引,由于mytable表的userame也出现在了JOIN子句中,也有对它建立索引的必要。刚才提到只有某些时候的LIKE才需建立索引。因为在以通配符%和_开头作查询时,MySQL不会使用索引。例如下句会使用索引:

SELECT * FROM mytable WHERE username like'admin%' 而下句就不会使用:

SELECT * FROM mytable WHEREt Name like'%admin' 因此,在使用LIKE时应注意以上的区别。

7.索引的不足之处

上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。


合肥工业大学操作系统实验9 依据操作系统课程所介绍的页面置换算法与动态内存分配的原理,本实验的目的是掌握OPT、FIFO、LRU、LFU、Clock等页面置换算法;掌握可用空间表及分配方法;掌握边界标识法以及伙伴系统的内存分配方法和回收方法。从而深入理解操作系统的内存管理。从而加深对教材上页面置换算法与动态内存分配的理解。 阅读详情

相关推荐

STM32中RS485方向控制引脚应用详解

深入解析STM32如何通过GPIO控制RS485通讯的方向引脚,实现半双工通信的精准切换。重点讲解硬件连接与软件时序配合,确保rs485通讯稳定可靠,适用于工业控制等实际场景。

weixin_42451850的博客 402

mysql常用操作语法、增删索引、增删改字段、增删改语法

mysql、添加索引、新增字段、更新语句、删除索引、修改字段、DEFAULT NULL

weixin_37862824的博客 5418

IMU卡尔曼滤波方法详细介绍

本文介绍了基于IMU和卡尔曼滤波的状态估计方法。系统采用9维状态向量(位置、速度、加速度计零偏),通过牛顿运动学建立状态方程,并利用外部位置观测进行校正。详细推导了状态转移矩阵和控制输入矩阵的形式,阐述了预测和更新的计算步骤。同时说明了过程噪声Q和观测噪声R的设置原则,其中Q反映模型不确定性,R取决于传感器精度。该方法可有效融合IMU测量与外部观测数据,实现位置、速度和偏置的联合估计。

haing2019的博客 758

MySQL数据库索引的种类、创建、删除

索引:是一个排序的列表,包含索引字段的值和其相对应的行数据所在的物理地址作用:加快表的查询速度,还可以对字段排序。

A1100886的博客 5362

HP iLO4报错自救指南:Embedded Flash/SD-CARD故障的3种修复方案(附详细截图)

本文详细解析了HP iLO4出现'Embedded Flash/SD-CARD'故障时的3种修复方案,包括快速恢复、固件级修复和硬件级解决方案。通过Diagnostics诊断和Self-Test报告,帮助运维人员高效解决问题,并提供预防性维护建议,确保服务器远程管理功能的稳定性。

weixin_42522953的博客 515

【ArcGIS Pro微课1000例】0065:制作千层饼多图层叠加效果

右键dem图层,点击符号系统,在右侧的符号系统窗口中,选择拉伸,勾选【显示名称】和【显示全部】,选择高程色带7。由于数据具有高程源,因此可以将数据进行三维显示。右键地面→添加高程源图层。打开ArcGIS PRo,新建一个局部场景,命名为千层饼。设置了高程源数据之后,千层饼一下子就变成了三维形状。数据默认都是在一个平面上,以默认的符号系统显示。到此为止,每个图层均为平面的千层饼已经做好了。将TIN图层的高程偏移设置为-1000。最后将等高线的高程设为2000.移除工程默认加载的图层。默认即可,不需要做修改。

智慧空间实验室 1157

MySQL索引的添加修改以及删除

在 MySQL 中,可以通过CREATEALTER, 和DROP语句来添加、修改和删除索引。

weixin_53850894的博客 3749

手把手教你模拟登录豆瓣并爬取个人书影音数据:从Cookie解析到反爬攻防实战

在开始写代码之前,先明确我们需要的工具。:建议用3.10以上版本,方便使用一些新特性(如match语句)httpx:比requests更现代,支持HTTP/2,异步性能强,连接池复用好:解析HTML,语法简单,容错性强selenium:仅用于处理登录时的滑块验证(模拟真人)pandas:最终数据清洗和导出Excel/CSVretrying:自动重试机制,应对临时封禁:随机UA,降低特征lxml:作为BeautifulSoup的解析器,速度快为什么不只用requests?

2201_76125261的博客 579

mysql索引

为什么要使用索引 1.可以加快数据的检索速度(大大减少检索的数据量,这也是使用索引的主要原因)。 2.帮助服务器避免排序和临时表 3.将随机IO变为顺序IO 使用索引要注意的事项 1.在经常需要搜索的列上创建,可以加快搜索速度。 2.在经常使用where子句中的列上面创建,加快条件的判断速度。 3.在经常需要排序的列上面创建,因为索引已经排序,这样可以直接使用索引的排序,加快排序查询时间。 4.对于中到大型表创建索引都是非常有效的,但对于超大型表创建索引成本较大,不建议使用。 5.在经常用在连接的列上创建索

weixin_42906466的博客 1454

Python 爬虫实战:爬取 B 站 UP 主投稿数据,分析更新频率与粉丝互动

摘要:本文基于Python技术实现B站UP主投稿数据的自动化爬取与分析。通过解析B站WBI签名机制和API接口,获取UP主视频的标题、播放量、点赞数等核心数据。采用时间序列分析统计更新频率,结合相关性分析挖掘内容特征与粉丝互动的关联。结果显示编程类视频播放量最高,10-20分钟时长的视频表现最佳,投币数与播放量相关性达0.92。文章详细介绍了接口分析、反爬应对等关键技术,为内容创作者优化策略提供数据支持,同时强调遵守平台规范的爬取原则。

2503_91057718的博客 1538

在Ubuntu系统中安装和使用wxPython进行Python图形用户界面(GUI)开发

在本文中,我将向您展示如何在Ubuntu系统上安装和使用wxPython,并提供一些示例代码来帮助您开始使用这个强大的工具。在MyFrame的构造函数中,我们创建了一个wx.Panel和一个按钮,并将按钮的点击事件绑定到一个自定义的方法on_button_click上。最后,我们创建了一个wx.App的实例,创建了一个MyFrame对象并显示它,最后通过调用app.MainLoop()启动应用程序的主事件循环。这只是一个简单的示例,但它演示了如何使用wxPython创建一个基本的GUI应用程序。

qq_37934722的博客 1040

MySQL 索引的创建、删除

MySQL中索引的创建有三种方法,索引的删除有两种方法

我的博客 3834

CATIA文件的网页预览方案

CATIA是工业设计中广泛使用的专业软件,产出`.CATPart`或 `.CATProduct`等文件类型,当资产数量较大时,我们希望快捷预览这些文件,就有了`CATPart`文件网页预览的需求 但我们知道,网页上无法直接渲染`CATPart`这种复杂的文件, CATIA生成的文件(如 `CATPart` 和 `CATProduct`)不仅包含三维几何信息(例如点、线和曲面),还涵盖了丰富的元数据与专业设计特征。 那有没有办法,能实现CATIA文件在网页上的便捷预览?

weixin_44211633的博客 1453

mysql 如何创建索引、修改索引、删除索引、查询索引

一、创建索引 1、添加PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2、添加UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 3、添加INDEX(普通索引) ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 4、添加FULLTEXT(全文索引) ALTER T

一颗程序猿 3万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

mysql索引分类、创建索引、删除索引、删除主键、查看索引、修改索引

目录 索引定义和作用 mysql索引分类 创建索引 建表时创建 在已存在的表上创建索引 删除索引 查看索引 修改索引 联合索引操作 各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢! 索引定义和作用 索引就是保存在磁盘中的,高效查询的一种数据结构。InnoDB默认使用的是B+Tree结构,至于什么是B+Tree,为什么选择B+Tree,感兴趣的可以看mysql索引机制、二分查找法、二叉树、平衡二叉树、B-Tree、B+Tree my

FAIRYTAIL的博客 522

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

mysql中索引的创建 查看 删除 修改(转)

转自https://www.cnblogs.com/yeyublog/p/5898588.html 查看某个表中的索引 SHOW INDEX FROM database_name.table_name ============================================================== Mysql中索引的 创建,查看,删除,修改 ...

weixin_30823833的博客 121

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

mysql修改索引语句_mysql——创建索引、修改索引、删除索引的命令语句

查看表中已经存在 index:showindex from table_name;创建和删除索引索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。删除索引可以利用ALTER TABLE或DROP INDEX语句来实现。(1)使用ALTER TABLE语句创建索引。语法如下:alter table table_name ...

weixin_36438989的博客 8951

Mysql中索引的 创建,查看,删除,修改

  创建索引   MySQL创建索引的语法如下:   ?   1   2   3   其中对应的语法变量信息如下:   [UNIQUE|FULLTEXT|SPATIAL]   中括号中的这三个关键字表示创建的索引类型,它们分别表示唯一索引、全文索引、空间索引三种不同的索引类型...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 300

mysql字段简索引_MySql创建索引、删除索引、新增字段、删除字段、修改字段语句...

----------------------------------------------------------- ALTER TABLE 创建索引----------------------------------------------------------- 创建主键ALTER TABLE `table_name` ADD CONSTRAINT PRIMARY KEY( `column...

weixin_29035405的博客 162

mysql索引创建修改删除

创建索引MySQL创建索引的语法如下:123CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON table_name (index_col_name,...)其中对应的语法变量信息如下:[UNIQUE|FULLTEXT|SPATIAL]中括号中的这三个关键字表示创建的索引类型,它们分别表示唯一索引、全文索引

Programmer小卫 1128

mysql创建、修改、删除索引和主键

登陆到MYSQL环境: mysql&amp;amp;amp;amp;gt; mysql -u root -p ; 输入密码: 显示所有的数据库名称 mysql&amp;amp;amp;amp;gt; show databases ; ±-------------------+ | Database | ±-------------------+ | information_schema | | gg ...

胃病的不良少彦 2352

MySQL索引的创建,查看,修改,删除示例

创建索引,查看索引,修改索引,删除索引及其他相关操作

weixin_72431427的博客 879
下一篇: sqlserver的完全卸载
Coder_Stephen
博客等级 码龄9年 16粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值