iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL该如何实现查看与创建以及删除索引
  • 260
分享到

MySQL该如何实现查看与创建以及删除索引

2024-04-02 19:04:59 260人浏览 泡泡鱼
摘要

下面一起来了解下Mysql该如何实现查看与创建以及删除索引,相信大家看完肯定会受益匪浅,文字在精不在多,希望mysql该如何实现查看与创建以及删除索引这篇短内容是你想要的。    &nb

下面一起来了解下Mysql该如何实现查看与创建以及删除索引,相信大家看完肯定会受益匪浅,文字在精不在多,希望mysql该如何实现查看与创建以及删除索引这篇短内容是你想要的。                                                 

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 TABLE table_name ADD UNIQUE (column_list)
ALTER TABLE table_name ADD PRIMARY KEY (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,因为一个表中不可能具有两个同名的索引。

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

代码如下:

ALTER TABLE students ADD PRIMARY KEY (sid)

4.  删除索引

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

DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY

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

5.查看索引

mysql> show index from tblname;
mysql> show keys from tblname;

· 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

看完MySQL该如何实现查看与创建以及删除索引这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的数据库栏目。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL该如何实现查看与创建以及删除索引

本文链接: https://www.lsjlt.com/news/34550.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在MySQL中创建、删除和查询索引
    如何在MySQL中创建、删除和查询索引?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。熟悉使用MySQL命令可以方便灵活地执行各种数据库操作...
    99+
    2024-04-02
  • Mysql索引创建删除及使用代价
    目录一、Mysql 中索引的创建删除二、索引的代价1. 空间上的代价2. 时间上的代价小结一、Mysql 中索引的创建删除 innodb 和 myisam 引擎会自动为主键或者带有 ...
    99+
    2024-04-02
  • oracle中dblink查看、创建、使用以及删除实例代码
    目录一.查看dblink二.创建dblink三.删除dblink补充:DBLink 的使用查询总结一.查看dblink --查看全部用户 SELECT OWNER,OBJEC...
    99+
    2024-04-02
  • mongo如何查询慢日志以及创建索引
    这篇文章给大家分享的是有关mongo如何查询慢日志以及创建索引的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.查看mongodb慢日志是否开起use LogDB;db.getP...
    99+
    2024-04-02
  • oracle如何查看索引创建时间
    要查看Oracle数据库中索引的创建时间,可以通过以下步骤进行操作:1. 首先,使用以下命令登录到Oracle数据库的SQL*Plu...
    99+
    2023-08-20
    oracle
  • Mysql索引创建删除及使用的代价是什么
    本篇内容介绍了“Mysql索引创建删除及使用的代价是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Mysql 中索引的创建删除inn...
    99+
    2023-06-30
  • MySQL中如何创建索引以提高查询性能
    在MySQL中,可以使用CREATE INDEX语句来创建索引以提高查询性能。下面是一个示例: CREATE INDEX idx_l...
    99+
    2024-04-09
    MySQL
  • 【SQL应知应会】索引(三)• MySQL版:聚簇索引与非聚簇索引;查看索引与删除索引;索引方法
    欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 索引 • MySQL...
    99+
    2023-08-24
    sql mysql 数据库 oracle 大数据 面试
  • 如何实现MySQL中删除索引的语句?
    如何实现MySQL中删除索引的语句?在MySQL中,索引是提高查询性能的重要工具之一。然而,有时候我们需要删除某个表的索引,可能是因为索引不再使用或者需要重新设计。本文将介绍如何在MySQL中删除索引的语句,并给出具体的代码示例。在MySQ...
    99+
    2023-11-08
    删除索引 (Delete index) MySQL 删除索引 (MySQL delete index) 删除MySQL
  • MySQL数据库存储引擎以及数据库的创建、修改与删除
    文章目录 MySQL存储引擎InnoDB存储引擎MyISAM储存引擎Memory存储引擎Archive存储引擎 数据库的相关操作创建数据库修改数据库删除数据库查看数据库列表打开数据库 ...
    99+
    2023-08-30
    数据库 mysql 存储引擎
  • sqlserver的表、视图、索引如何实现创建、修改、删除操作
    小编给大家分享一下sqlserver的表、视图、索引如何实现创建、修改、删除操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一...
    99+
    2024-04-02
  • MySQL触发器如何创建与删除
    这篇文章主要介绍“MySQL触发器如何创建与删除”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL触发器如何创建与删除”文章能帮助大家解决问题。1.为什么需要...
    99+
    2024-04-02
  • 如何实现MySQL中创建索引的语句?
    MySQL索引是提高数据检索速度的重要手段之一,它通过将数据存储在特定的数据结构中,加快了查询语句的执行速度。在MySQL中创建索引的语句非常简单,只需要在创建表的时候在相关字段后加上索引关键字即可。本文将为读者详细介绍如何在MySQL中创...
    99+
    2023-11-08
    MySQL索引创建 实现MySQL索引 创建MySQL索引语句
  • mongodb中索引分类是怎样的以及如何创建索引
    mongodb中索引分类是怎样的以及如何创建索引,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。学习索引分类和创建索引:   &nbs...
    99+
    2024-04-02
  • mysql索引如何实现增删改查的操作
    这篇文章主要介绍了mysql索引如何实现增删改查的操作,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql中可使用“CREATE INDEX...
    99+
    2024-04-02
  • mysql如何实现用户创建、修改、删除及授权操作
    这篇文章主要介绍了mysql如何实现用户创建、修改、删除及授权操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、mysql命令进行连接如...
    99+
    2024-04-02
  • Win10如何删除和重建索引以加快搜索的速度
      在搜索本地文件时,如果系统事先建立了索引,会大大加快搜索的速度。Win10在此前系统的基础上继续完善索引功能,我们能够对已建立的索引进行删除和重建。下面是具体操作方法。   操作步骤   1.在控制面板找到索引选项。...
    99+
    2023-06-13
    Win10 重建 索引 速度
  • Mysql如何实现查看,创建用户、赋权、删除表用户数据库等操作
    这篇文章主要介绍Mysql如何实现查看,创建用户、赋权、删除表用户数据库等操作,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 创建用户、赋权、表空间--...
    99+
    2024-04-02
  • MySQL创建、删除以及更改用户的方法与权限介绍
    本篇内容介绍了“MySQL创建、删除以及更改用户的方法与权限介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • hadoop如何实现文件夹文件的创建与删除
    小编给大家分享一下hadoop如何实现文件夹文件的创建与删除,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!package hadoop.test;imp...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作