当前位置: 首页 > news >正文

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

索引

概述

索引是一种与数据表相关的类似于目录的一种数据结构,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.hskmm.com/?act=detail&tid=23741

相关文章:

  • 2025十一集训——Day2做题
  • 核聚变:Commonwealth Fusion Systems
  • 占个位置~
  • AI元人文系列文章:价值决策芯片——为机器安上一颗“透明的心”
  • 30天JavaScript挑战 - 从零基础到精通的完整学习指南
  • 题解:AT_agc057_c [AGC057C] Increment or Xor
  • 占个位置
  • 使用 Copilot AI + Blazor 编一个五子棋游戏
  • 关于VMware虚拟机如何下载-2025.10.3
  • 国庆集训做题10.1 - 10.3
  • 玳瑁的嵌入式日记---0928(ARM--UART) - 指南
  • 解决Visual Studio中无法使用scanf和C++万能头的问题
  • 英文笔记
  • 解码红黑树
  • 10/3
  • Advanced Computer Graphics
  • Netflix确保数亿用户观影体验的“事件”管理是如何构建与实践的?
  • 为什么词嵌入可以和位置编码相加
  • 【比赛记录】2025CSP-S模拟赛57
  • 实用指南:软件设计师——04 操作系统
  • 20251001国庆模拟
  • 线段树合并 [POI 2011] ROT-Tree Rotations
  • CSS的选择器 - 指南
  • C# Net9的模块初始化器(Module Initializer)
  • 离线轻量大模型,Ollama部署到docker方法
  • 应用拓扑讲义整理 Chapter 6. 单纯复形(Simplicial Complexes)
  • 完整教程:华为麒麟9010、9020、9030、9040系列芯片的性能参数及其与高通芯片的对比
  • AQS(ReentrantLock)源码浅析
  • 05. 事件处理
  • 总结问题2 软工10.3