4-创建索引和约束 - 实践

news/2025/10/3 20:28:50/文章来源:https://www.cnblogs.com/lxjshuju/p/19124959

索引

概述

索引是一种与数据表相关的类似于目录的一种数据结构,MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

索引也类似一张表,该表保存了主键与索引字段,并指向实体表的记录。

索引也能够分为单列索引和组合索引,单列索引表示一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引;组合索引表示一个索引包含多个列。

索引的优点

提高查询速度。

提高表与表之间连接的效率。

唯一性索引还可以保证数据记录的唯一性。

索引的缺点

创建的越多越好。就是虽然索引大大提高了查询速度,但却会降低更新表的速度,因为在对数据表进行INSERT、UPDATE、DELETE的管理时,MySQL不仅要保存资料,还要保存一下索引文件。因此,索引并不

引用索引的原则

科学地设计索引,在提高查询效率的同时,应尽量减少索引带来的副作用。

考虑设置索引的情况如下:

  • 经常检索的列(在WHERE子句中应用的列)。
  • 主键列、外键列(事实上,主键约束列、唯一性约束列会自动创建索引)。
  • 经常用于表间连接的列。

考虑不设置索引的情况如下:

  • 检索中几乎不涉及到的列。
  • 重复值太多的列。
  • 数据类型为text、blob的列。
  • 行数极少的表没必要创建索引。
  • 插入、更新效率比查询效率更重要的情况。

创建表的同时创建索引

其中索引项的语法格式为:
PRIMARY KEY [<索引名>](<字段名1> [ASC|DESC] [, ……n]) |
UNIQUE [INDEX] [<索引名>](<字段名1> [ASC|DESC] [, ……n]) |
INDEX | KEY [<索引名>](<字段名1> [ASC|DESC] [, ……n]) |
FULLTEXT [INDEX] [<索引名>](<字段名1> [ASC|DESC] [, ……n])

说明:

PRIMARY KEY:主键索引。
UNIQUE:唯一性索引。
INDEX | KEY:普通索引,KEY通常是INDEX的同义词,二选一即可。
FULLTEXT:全文索引。

在这里插入图片描述

在ALTER TABLE语句中创建索引

  • 假如数据表已经存在,可以利用ALTER TABLE语句创建索引,其语法格式如下:
    ALTER TABLE <表名>
    ADD 索引项

说明:语法中除了多一个ADD关键词,其他与在CREATE TABLE语句中创建索引类似。

  • 示例:

在这里插入图片描述

使用CREATE INDEX语句创建索引

说明:若无UNIQUE、FULLTEXT关键词则是创建普通索引。

在这里插入图片描述

使用SHOW INDEX语句查看索引

  • 查看索引运用语句SHOW INDEX,其语法格式如下:
    SHOW INDEX FROM <表名> [FROM &

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

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

相关文章

双线网站选服务器我要申请开网店

操作 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表、视图等等,DDL 对这些对象和属性的管理和定义具体表现在 create、drop 和 alter 上。 create 可以创建数据库和数据库的一些对象 drop …

Unity 单元测试框架用法 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025十一集训——Day2做题

https://vjudge.net/contest/753101 A. vjudge CF给 a、b、d,求 x 使 \(a or x\) 与 \(b or x\) 是 d 的因数,\(a,b,d<2^{30}\),要求 \(x<2^{60}\)考虑让 \(a or x = x\),\(b or x = x\),使 x 是 d 的倍数即…

20250929给PRO-RK3566开发板在Buildroot系统下裁剪内核【已关闭摄像头ov4689为例子】 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

核聚变:Commonwealth Fusion Systems

核聚变:Commonwealth Fusion Systems 核聚变,作为模仿太阳能量产生机制的终极清洁能源梦想,长久以来面临着“永远还有三十年”的困境。如今,一家从麻省理工学院(MIT)剥离出来的公司——Commonwealth Fusion Syst…

个人可以建论坛网站吗商会网站建设招标方案

文章目录 2.1_3 奈氏准则和香农定理&#xff08;一&#xff09;失真&#xff08;二&#xff09;失真的一种现象——码间串扰&#xff08;三&#xff09;奈氏准则&#xff08;奈奎斯特定理&#xff09;&#xff08;四&#xff09;香农定理&#xff08;五&#xff09;“Nice”和“…

详细介绍:深度学习赋能基层医疗:融合PyTorch与Django的智能医疗影像诊断平台研究

详细介绍:深度学习赋能基层医疗:融合PyTorch与Django的智能医疗影像诊断平台研究2025-10-03 20:14 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; over…

AI元人文系列文章:价值决策芯片——为机器安上一颗“透明的心”

好的,这是一篇基于我们深度讨论的、面向未来的构想性文章。AI元人文系列文章:价值决策芯片——为机器安上一颗“透明的心” 当算法的决策牵动生命与未来,我们需要的不仅是算力,更是可审视、可共鸣的价值理性。 引言…

Day007 Java方法基础

Day007 Java方法基础$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");Java方法 方法的定义及调用 何为方法 System.out.println():System是一个类,out是输出…

30天JavaScript挑战 - 从零基础到精通的完整学习指南

30天JavaScript挑战是一个系统性的编程学习项目,通过30天的渐进式课程,涵盖从基础语法到高级概念的完整JavaScript知识体系,帮助学习者从零开始掌握现代JavaScript开发技能。30天JavaScript挑战 项目描述 30天JavaS…

题解:AT_agc057_c [AGC057C] Increment or Xor

题意:很简单了,不再赘述。 做法: 先观察一下打打表,发现首先必须满足 \(a_i\equiv a_{i+\frac{N}2}\pmod {\frac{N}2}\),这里 \(N=2^n\),因为结束状态满足,且这两种操作都不影响他们对 \(\frac{N}{2}\) 取模的关…

怎样切图做网站六盘水网站设计

ENSP默认路由配置 1&#xff0c;配置R1路由器 sys ##进入系统视图模式 [Huawei]sys R1 ##修改名字 [R1]int e0/0/0 ##进入接口 [R1-Ethernet0/0/0]ip add 192.168.1.254 24 ##配置ip地址 [R1-Ethernet0/0/0]undo shut ##开启物理接口 [R1-Ethernet0/0/1]int e0/0/1 [R1-Etherne…

网站建设方面的论文东莞市南城装饰工程东莞网站建设

hello&#xff0c;大家好&#xff0c;本讲我们一起聊一下常见的几个并发工具类的使用和坑&#xff01; 在日常工作中&#xff0c;我们经常会遇到多线程并发问题&#xff0c;比如ThreadLocal、锁、ConcurrentHashMap、CopyOnWriteArrayList等。那么如何正常的使用呢&#xff1f;…

Spring框架常见的注解 - 实践

Spring框架常见的注解 - 实践2025-10-03 20:03 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important…

C# MVVM模式和Qt中MVC模式的比较 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

图书馆网站建设公司秒拍wordpress插件

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

网站建设关键字优化网页制作基础教程visual studio code

Python面向对象编程 1.面向对象概念介绍1) 面相过程 —— 怎么做&#xff1f;2&#xff09;面向对象 谁来做 2.类和对象2.1类2.2对象2.3类和对象的关系2.4类的设计2.5面向对象设计案例 士兵类设计2.6身份运算符 3.私有属性和私有方法3.1. 应用场景及定义方式 4.继承、多态重写父…

使用 Copilot AI + Blazor 编一个五子棋游戏

1. 创建 Blazor web工程,选Auto2. 打开 GitHub Copilot 窗口,输入提示词 使用 Blazor 编一个五子棋游戏3.复制代码测试 为了方便调试, 我们先把运行模式由 InteractiveAuto 改为 InteractiveServer 打开 App.razor 编辑…