mysql-索引_MySQL-索引

mysql-索引

mysql-索引

MySQL-索引 (MySQL - INDEXES)

A database index is a data structure that improves the speed of operations in a table. Indexes can be created using one or more columns, providing the basis for both rapid random lookups and efficient ordering of access to records.

数据库索引是一种数据结构,可以提高表中操作的速度。 可以使用一个或多个列创建索引,这为快速随机查找和对记录访问的有效排序提供了基础。

While creating index, it should be taken into consideration which all columns will be used to make SQL queries and create one or more indexes on those columns.

创建索引时,应考虑将所有列都用于进行SQL查询并在这些列上创建一个或多个索引。

Practically, indexes are also a type of tables, which keep primary key or index field and a pointer to each record into the actual table.

实际上,索引也是表的一种,保留主键或索引字段以及指向实际表中每个记录的指针。

The users cannot see the indexes, they are just used to speed up queries and will be used by the Database Search Engine to locate records very fast.

用户看不到索引,它们仅用于加速查询,并且数据库搜索引擎将使用它们非常快速地定位记录。

The INSERT and UPDATE statements take more time on tables having indexes, whereas the SELECT statements become fast on those tables. The reason is that while doing insert or update, a database needs to insert or update the index values as well.

INSERT和UPDATE语句在具有索引的表上花费更多时间,而SELECT语句在那些表上变得很快。 原因是在进行插入或更新时,数据库也需要插入或更新索引值。

简单唯一索引 (Simple and Unique Index)

You can create a unique index on a table. A unique index means that two rows cannot have the same index value. Here is the syntax to create an Index on a table.

您可以在表上创建唯一索引。 唯一索引意味着两行不能具有相同的索引值。 这是在表上创建索引的语法。


CREATE UNIQUE INDEX index_name ON table_name ( column1, column2,...);

You can use one or more columns to create an index.

您可以使用一个或多个列来创建索引。

For example, we can create an index on tutorials_tbl using tutorial_author.

例如,我们可以使用tutorial_authortutorials_tbl上创建索引。


CREATE UNIQUE INDEX AUTHOR_INDEX ON tutorials_tbl (tutorial_author)

You can create a simple index on a table. Just omit the UNIQUE keyword from the query to create a simple index. A Simple index allows duplicate values in a table.

您可以在表上创建一个简单的索引。 只需从查询中省略UNIQUE关键字即可创建一个简单的索引。 简单索引允许在表中重复值。

If you want to index the values in a column in a descending order, you can add the reserved word DESC after the column name.

如果要按降序索引列中的值,可以在列名后添加保留字DESC。


mysql> CREATE UNIQUE INDEX AUTHOR_INDEX ON tutorials_tbl (tutorial_author DESC)

ALTER命令添加和删除INDEX (ALTER command to add and drop INDEX)

There are four types of statements for adding indexes to a table −

有四种类型的语句可向表添加索引-

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) − This statement adds a PRIMARY KEY, which means that the indexed values must be unique and cannot be NULL.

    ALTER TABLE tbl_name ADD PRIMARY KEY(column_list) -此语句添加了PRIMARY KEY ,这意味着索引值必须唯一且不能为NULL。

  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) − This statement creates an index for which the values must be unique (except for the NULL values, which may appear multiple times).

    ALTER TABLE tbl_name ADD UNIQUE index_name(column_list) -此语句创建一个索引,该索引的值必须唯一(NULL值除外,该值可能出现多次)。

  • ALTER TABLE tbl_name ADD INDEX index_name (column_list) − This adds an ordinary index in which any value may appear more than once.

    ALTER TABLE tbl_name添加索引index_name(column_list) -这将添加一个普通索引,其中任何值都可能出现多次。

  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) − This creates a special FULLTEXT index that is used for text-searching purposes.

    ALTER TABLE tbl_name添加FULLTEXT index_name(column_list) -这将创建一个特殊的FULLTEXT索引,该索引用于文本搜索。

The following code block is an example to add index in an existing table.

以下代码块是在现有表中添加索引的示例。


mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

You can drop any INDEX by using the DROP clause along with the ALTER command.

您可以使用DROP子句以及ALTER命令删除任何INDEX。

Try out the following example to drop the above-created index.

尝试以下示例删除上面创建的索引。


mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

You can drop any INDEX by using the DROP clause along with the ALTER command.

您可以使用DROP子句以及ALTER命令删除任何INDEX。

ALTER命令添加和删除PRIMARY KEY (ALTER Command to add and drop the PRIMARY KEY)

You can add a primary key as well in the same way. But make sure the Primary Key works on columns, which are NOT NULL.

您也可以以相同的方式添加主键。 但是,请确保主键可以在非NULL的列上使用。

The following code block is an example to add the primary key in an existing table. This will make a column NOT NULL first and then add it as a primary key.

以下代码块是在现有表中添加主键的示例。 这将使列NOT NOT NULL首先出现,然后将其添加为主键。


mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

You can use the ALTER command to drop a primary key as follows −

您可以使用ALTER命令来删除主键,如下所示:


mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

To drop an index that is not a PRIMARY KEY, you must specify the index name.

要删除不是PRIMARY KEY的索引,必须指定索引名称。

显示索引信息 (Displaying INDEX Information)

You can use the SHOW INDEX command to list out all the indexes associated with a table. The vertical-format output (specified by \G) often is useful with this statement, to avoid a long line wraparound −

您可以使用SHOW INDEX命令列出与表关联的所有索引。 垂直格式输出(由\ G指定)通常对于此语句很有用,以避免长行换行-

Try out the following example −

尝试以下示例-


mysql> SHOW INDEX FROM table_name\G
........

翻译自: https://www.tutorialspoint.com/mysql/mysql-indexes.htm

mysql-索引

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

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

相关文章

MySql的索引?

MySql的索引? 1 Hash索引? 通过hashCode去匹配,查找数据库中唯一值的速度很快,不支持范围查找,联合索引也不支持 只适用于select * from table where id 5;只适用于等于的情况 2红黑树? 数据量大的情况下,红黑树的树太高了,查询最深处的数据时,磁盘读取次数较多 3 B树? …

mysql中索引

一、概述 1、What? 索引是对数据库表中一列或多列的值进行排序的的一种结构,可以提高数据库中特定的数据查询速度。 索引时一个单独存储在磁盘上的数据库结构,包括对数据表里面的所有记录的引用指针。 索引时在存储引擎中实现的,…

mysql 之索引

什么是索引: 索引是一种高效获取数据的 存储结构,一般包含了 hash 二叉树 红黑树。 但是mysql中索引一般使用的是B树 准确说是使用的B树构建的索引:若仅仅是进行select * from table where id 1,用上述的三种方法都会很轻松的实…

Mysql__索引

1)索引问题----组合索引 最左前缀匹配原则 在mysql建立联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最左边开始匹配 ALTER TABLE index ADD INDEX test_AA_BB_CC_DD (AA,BB,CC,DD);SHOW INDEX FROM index;EXPLAIN SELECT …

【Mysql 索引】

索引的基本知识 1. 索引介绍 索引的出现就是为了提高数据检索效率,就跟书的目录一样。索引不但在内存中,还写在硬盘中。索引是存储引擎实现的。 2. 索引常见模型 搜索树: 每个节点左儿子小于父节点,父节点小于右节点. select/update 复杂…

Mysql、索引

索引 数据库中的查询操作非常普遍,索引就是提升查找速度的一种手段 索引的类型 从数据结构角度分 1.B索引:传统意义上的索引,最常用最普遍的索引2.hash索引:hash索引是一种自适应的索引,数据库会根据表的使用情况自动生…

MySQL—索引

索引是什么? 索引是一种特殊的文件,它们包含着对数据表里所有记录的引用指针。 索引是一种数据结构,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据表中的数据。通俗来说,索引相当与目录&#xff0c…

MySQL的索引有哪些

一、索引是什么# 索引,在MySQL中也叫“键(key)”,是存储引擎用于快速找到记录的一种数据结构。如果把数据库的一张表比作一本书,那索引则是这本书的目录,通过目录,我们能快速找到我们想要的主题…

mysql 的 索引

「深度学习福利」大神带你进阶工程师,立即查看>>> 1 什么是索引? 索引是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。 索引的实现 通常使用B树及其变种B树。 索引相当于字典的目录,作用…

Mysql高性能索引

一、索引是什么 二、索引的底层实现原理 三、InnoDB的存储结构是怎样的? 四、InnoDB索引和MyIsam索引对比 五、Mysql为什么会选错索引 六、唯一索引和普通索引的区别 导读:本博文讲解了索引是什么和索引的底层原理,提到了 BTREE和 BTREE hash底层…

MySQL:索引

一、索引的常见模型 索引的出现是为了提高数据查询的效率。实现索引的方式有很多种,比较常见的数据结构有:哈希表、有序数组和搜索树。 索引是在存储引擎层实现的,不同存储引擎索引工作方式不同。 1.1 哈希表 哈希表:键值存储…

【MySQL】MySQL的索引

目录 索引1.1 概念1.2 作用1.3 使用场景1.4 使用1.5 索引最常用的数据结构 索引 1.1 概念 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引, 并指定索引的类型,各类索引有各自的数据结构实现。 …

MySQL 的索引

文章目录 索引简介普通索引主键索引唯一索引全文索引外键索引复合索引复合索引生效的几种方式复合索引会失效的情况 索引的优点高性能的索引策略独立的列前缀索引和索引的选择性复合索引选择合适的索引列顺序聚簇索引索引的 Btree 结构聚簇索引和非聚簇索引的区别聚簇索引的优点…

什么是 MySQL 索引?

什么是索引? 假设我们有一张数据表 employee(员工表),该表有三个字段(列),分别是name、age 和address。假设表employee有上万行数据(这公司还真大),现在需要从这个表中查找出所有名字是‘ZhangSan’的雇员信…

MySql知识体系总结(2021版)

存储引擎负责在MySQL中存储数据、提取数据、开启一个事务等等。存储引擎通过API与上层进行通信,这些API屏蔽了不同存储引擎之间的差异,使得这些差异对上层查询过程透明。存储引擎不会去解析SQL。 二、对比InnoDB与MyISAM 1、 存储结构 MyISAM&#xff…

一文搞懂MySQL索引所有知识点(建议收藏)

Mysql索引 索引介绍 索引是什么 官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储…

Doris安装

Apache Doris 由百度大数据部研发(之前叫百度 Palo,2018 年贡献到 Apache 社区后, 更名为 Doris ),在百度内部,有超过 200 个产品线在使用,部署机器超过 1000 台,单一 业务最大可达…

深入理解hashmap底层实现原理

目录 总体介绍 HashMap元素的存储 在hashmap中添加元素 HashMap的扩容机制 HashMap的线程安全性 1.添加和删除元素时存在不安全性 2.进行扩容操作时存在不安全性 3.哈希冲突存在不安全性 4.线程之间的不可见性导致安全问题 总体介绍 HashMap是我们用于元素映射使用频率最…

RK3588平台开发系列讲解(项目篇)YOLOv5部署测试

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、YOLOv5环境安装二、YOLOv5简单使用2.1、获取预训练权重文2.2、YOLOv5简单测试2.3、转换为rknn模型2.4、部署到 RK 板卡三、airockchip/yolov5简单测试3.1、转换成rknn模型并部署到板卡沉淀、分享、成长,让自己和他…

HTML编码问题导致的乱码

今天一个学弟问了一个问题&#xff0c;它写的HTML代码打开显示的是乱码。 然后就给我发来了代码。 就一个HTML文件和一个文件夹&#xff0c;打开一看&#xff0c;很简单的代码。 <!DOCTYPE html> <html lang""> <head><meta charset"UTF…