MySQL索引的创建与基本用法

news2024/9/24 21:21:18

MySQL索引

MySQL索引是一种数据结构,用于提高查询数据的效率。MySQL索引可以被看作是数据库表的“目录”。就像书籍的目录帮助我们快速找到特定章节的位置一样,数据库索引帮助数据库快速找到特定数据记录的位置。

MySQL索引的类型与创建方法

MySQL索引分为五种,分别为基础索引唯一索引主键索引组合索引 文本索引
MySQL中的索引类型确实可以分为几种,每种类型都有其特定的用途和特性。以下是MySQL中常见的索引类型及其简要说明:

  1. 基础索引(Primary Key Index)
    主键索引是一种特殊的唯一索引,它确保一行的唯一性,并且每个表都必须有一个主键。主键索引的列不能有NULL值,并且表中的每一行都必须有一个唯一的主键值。
  2. 唯一索引(Unique Index)
    唯一索引确保一行的唯一性,即索引列中的值必须是唯一的,但可以有NULL值。唯一索引可以有多个,并且它们可以跨越多个列。
  3. 组合索引(Composite Index)
    组合索引,也称为复合索引,是由多个列组成的索引。这种索引适用于需要根据多个列的组合来查询数据的情况。在创建组合索引时,列的顺序很重要,因为MySQL可能会选择最左边的列进行搜索。
  4. 文本索引(Full-Text Index)
    文本索引用于Full-Text搜索,它可以对 CHAR、VARCHAR 和 TEXT 类型的列进行索引。文本索引允许进行全文搜索,并且可以用于MySQL的MATCH() against()`语句,以进行复杂的文本比较。
  5. 主键索引(Primary Key Index)
    主键索引(Primary Key Index)是数据库中一种非常重要的索引类型,它的主要作用是保证表中每一行数据的唯一性,并且作为表中所有行的参照标准。

基础索引

基础索引的创建
1.直接创建

create index  索引名 on 表名(列名);
create index id_index on csb;

在这里插入图片描述
2.修改表创建

alter table 表名 add index 索引名(列名);
alter table csb add index name_index (name);

在这里插入图片描述
3.创建表的时候指定

create table 表名(字段 数据类型,字段 数据类型,字段 数据类型,字段 数据类型,......,index 索引名 (列名))
create table csc  (id int(9),name char(15),address char(35),sex char(2),index id_index (id));

在这里插入图片描述

唯一索引

唯一索引的创建
***注意唯一索引允许有空值(注意和主键不同)。如果是用组合索引创建,则列值的组合必须唯一。添加唯一键将自动创建唯一索引。 ***


1.直接创建

create unique index 索引名 ON 表名(列名);
create unique index name_index csc(name);

在这里插入图片描述


2修改表格式创建

alter table 表名 add unique 索引名 (表名);
alter table csc add unique name_index (name);

在这里插入图片描述


3创建表时创建

create table 表名(字段 数据类型,字段 数据类型,字段 数据类型,字段 数据类型,......,unique 索引名 (列名))
create table csd  (id int(9),name char(15),address char(35),sex char(2),unique name_index (name));

在这里插入图片描述

主键索引

设置主键即可
在这里插入图片描述

alter table 表名 add primary key (字段);

在这里插入图片描述

在这里插入图片描述

组合索引

创建组合索引时,列的顺序很重要。MySQL会按照你在创建索引时列的顺序来优化查询。如果你经常需要按照列的组合来查询数据,确保最经常使用的列排在前面。

创建方式


1.建表时创建

create table 表名(字段 数据类型,字段 数据类型,字段 数据类型,字段 数据类型,......,INDEX 索引名 (字段名1,字段名2,字段名3,......));
create table cse  (id int(9),name char(15),address char(35),sex char(2),index id_index (id,name,address,sex));

在这里插入图片描述


2.直接创建

create index 索引名 on 表名(字段名1,字段名2,字段名3,......)
create index all_index on rye (id,name,address,sex);

在这里插入图片描述


3.添加创建

alter tables 表名 add index 索引名(1字段,2字段,3字段,4字段)
alter table loe index all_index(id,name,address,sex);

在这里插入图片描述
在这里插入图片描述

全文索引

全文索引的工作原理是将文本数据分解成小的数据单元(如单词或短语),然后将这些单元与索引表中的条目关联起来。索引表是一个包含指向包含特定文本单元的文档的指针的数据结构。当用户提交搜索查询时,全文搜索引擎会使用索引表快速定位匹配的文档,并按照相关性对结果进行排序。


1直接创建索引

CREATE FULLTEXT INDEX 索引名 ON 表名 (字段);
create fulltext index index_name ON qwe(name);

在这里插入图片描述


2添加创建

alter table 表名 add fulltext  index  索引名 (字段)
 alter table qwe add fulltext index index_address(address);

在这里插入图片描述


3创建表时指定

CREATE TABLE 表名 (字段1 数据类型[,...],FULLTEXT 索引名 (列名));
create table alt191  (id int(9),name char(15),address char(35),sex char(2),fulltext index_text (name,address,sex) );

在这里插入图片描述

删除索引

drop index 索引名 on 表名

在这里插入图片描述

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

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

相关文章

TR1 - Transformer起源与发展

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 1. Transformer的起源与发展 2017年Google在《Attention Is All You Need》中提出了Transformer结构用于序列标注,在翻译任务…

最细节操作 Linux LVM 逻辑卷管理

Linux LVM(逻辑卷管理) 周末愉快,今天带大家实战一下LVM! 一、LVM理论 LVM,即Logical Volume Manager,逻辑卷管理器,是一种硬盘的虚拟化技术,可以允许用户的硬盘资源进行灵活的调整和动态管理…

2023年五级区划省市县乡镇行政村社区边界数据

行政区划数据是重要的基础地理信息数据,根据国家统计局公布的数据,行政区划共分为五级,分别为省级、地级、县级、乡镇/街道级、村/社区级。 该套数据以2020-2023年国家基础地理信息数据中的县区划数据作为矢量基础,辅以高德行政区…

JavaSE:数据类型与变量

目录 一、前言 二、数据类型与变量 (一)字面常量 (二)数据类型 (三)变量 1.变量概念 2.语法格式 3.整型变量 3.1整型变量 3.2长整型变量 3.3短整型变量 3.4字节型变量 4.浮点型变量 4.1双精…

详解main函数参数argc、argv及如何传参

目录 1、main()函数参数 2、main函数如何传参 2.1 环境准备 2.2 通过 Powershell 窗口传参 2.3 通过vs界面传参 3、int main() 和 int main(int argc, char *argv[]) 特点 1、main()函数参数 在C语言中,main函数可以带参数。main函数的原型通常为以下两种形式…

第4章 数据架构

思维导图 架构是构建一个系统(如可居住型建筑)的艺术和科学,以及在此过程中形成的成果——系统本身。用通俗的话说,架构是对组件要素有组织的设计,旨在优化整个结构或系统的功能、性能、可行性、成本和用户体验。 将架…

Vue cli创建项目时键盘操作无效;vue3.0项目搭建自定义配置

一. 问题描述 在创建vue3.0项目时,在建好的文件夹,鼠标右键 git bash 使用 vue create my-vue3.0创建新项目时,键盘方向键失效,无法选中对应的选项(交互提示符不工作) 解决方案: 方案一 使用…

章文嵩等技术大咖共同探讨企业数据治理和降本增效策略运用!

3 月 16 日,AutoMQ 携手 OceanBase 开源社区、KubeBlocks 举行的《LLMs 时代下企业数据管理与降本增效之路》主题 meetup 顺利落幕。活动邀请了 AutoMQ 联合创始人 & CSO、Linux LVS 创始人 章文嵩,AutoMQ 联合创始人 & CTO、Apache RocketMQ 联…

一文秒懂什么是客服知识库

大家有没有遇到过这样的情况:打电话给客服,结果对方半天没明白你的问题,或者回答得牛头不对马嘴?这种时候,你是不是觉得特别郁闷,感觉自己的问题就像被丢进了黑洞,永远找不到答案?其…

利用pyvista库可视化点云

ShapeNet分割数据可视化对比 import os import glob import randomimport pyvista as pvresult_paths glob.glob(r./examples/shapenet/results/predict_err_ply/*/*) print(len(result_paths))case_id random.randint(0, len(result_paths) // 3) point_size 3 opacity 0.…

NX二次开发——选择对象控件(清空选择对象)

一、概述 选择对象控件在NX二次开发中经常使用,最近进行学习时发现一片博客中有清空选择对象控件中出现问题,我尝试着写了一下,应该可以解决博主中的问题,其实博主已经写的很详细了,几乎没怎么改,不知道是不…

又一个城市火了,媒介盒子盘点城市爆火原因

近日,“甘肃天水麻辣烫”在各大平台频频登上热搜榜,甘肃当地也及时接住了这泼天富贵,开通“麻辣烫专线”、机场高铁免费接、免费送门票等。这些措施似曾相识,因为在天水前,已经有淄博和哈尔滨这两个城市的案例可以供天…

Linux本地部署TeslaMate结合内网穿透实现公网访问内网车辆信息

文章目录 1. Docker部署TeslaMate2. 本地访问TeslaMate3. Linux安装Cpolar4. 配置TeslaMate公网地址5. 远程访问TeslaMate6. 固定TeslaMate公网地址7. 固定地址访问TeslaMate TeslaMate是一个开源软件,可以通过连接特斯拉账号,记录行驶历史,统…

【C++】输入流操作符 >> 的重载实现

scmd >> icmd 这一行代码的工作原理基于C的标准库对输入流操作符(istream extraction operator,即 >>)的重载实现。以下是详细的执行顺序和内部逻辑: 对象准备:在此场景中,scmd 是一个 istring…

成都数字产业园有哪些

成都,这座古老而又充满活力的城市,正逐渐成为数字经济的热土。在这座城市的各个角落,数字产业园如雨后春笋般崭露头角,它们为成都的数字化转型注入了强大的动力。首当其冲的便是国际数字影像产业园。 国际数字影像产业园区&#x…

AI写作如何使用,这些方法简单好学!

随着人工智能技术的不断发展,AI写作成为了一个热门话题。许多人都想知道如何使用AI写作来提高效率和质量。在本文中,我们将探讨一些简单而又易学的方法,帮助大家充分利用AI写作。 首先,我们需要了解什么是AI写作。AI写作是指利用人…

测试开发面试题总结(全)

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 某基金管理公司线下测试开发面试题总结。 测开题目如下 可以尝试自己先写,写完之后…

用tp6写的简单的eml的登录和curd

项目地址&#xff1a; 企业管理eml: 这是一个简单的eml (gitee.com) 1.登录和主页显示 1.1 登录功能逻辑图 1.2 控制器 app/controller/index.php php think make:validate LoginValidate <?php namespace app\controller;use app\BaseController; use app\model\User; …

探索海外市场舆情:云手机助力企业赢得全球竞争

在全球化的趋势下&#xff0c;越来越多的企业将目光投向海外市场&#xff0c;迎接着无尽的商机与挑战。然而&#xff0c;随之而来的是境外市场舆情的复杂变化&#xff0c;对企业的声誉和发展带来了潜在风险。如何准确、及时地掌握境外市场的舆情动向&#xff0c;成为了企业必须…

异常 --java学习笔记

异常 异常就是代表程序出现的问题 当一个方法出现问题&#xff0c;这个方法内部就会把这个问题的信息封装成一个异常对象&#xff0c;然后把这个异常对象抛给jvm虚拟机&#xff0c;jvm收到之后会先把出问题的程序先停下来&#xff0c;然后再把这个异常对象打印出来&#xff0c…