素引

简介: 素引

1、索引说明

MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。


打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。


拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。


索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。


创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。


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


上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。


建立索引会占用磁盘空间的索引文件。


1、普通索引

普通索引这是最基本的索引,它没有任何限制。它有以下几种创建方式


1.1、创建索引

CREATE INDEX indexName ON table_name (column_name)

1.2、修改表结构(添加索引)

ALTER table tableName ADD INDEX indexName(columnName)

1.3、创建表的时候直接指定

CREATE TABLE mytable(  

ID INT NOT NULL,  

username VARCHAR(16) NOT NULL,  

INDEX [indexName] (username(length))  

);  

1.4、删除索引的语法

DROP INDEX [indexName] ON mytable;

2、唯一索引

它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式


2.1、创建索引

CREATE UNIQUE INDEX indexName ON mytable(username(length))

2.2、修改表结构

ALTER table mytable ADD UNIQUE [indexName] (username(length))

2.3、创建表的时候直接指定

CREATE TABLE mytable(  

ID INT NOT NULL,  

username VARCHAR(16) NOT NULL,  

UNIQUE [indexName] (username(length))  

);  

3、使用ALTER 命令添加和删除索引

有四种方式来添加数据表的索引:


ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。

ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。

ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出现多次。

ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。

表中添加索引:


ALTER TABLE text_alter ADD INDEX (prices);

也可以通过 ALTER 命令使用 DROP 子句来删除索引:


ALTER TABLE text_alter DROP INDEX prices;

4、使用 ALTER 命令添加和删除主键

主键作用于列上(可以一个列或多个列联合主键),添加主键索引时,你需要确保该主键默认不为空(NOT NULL)。

ALTER TABLE text_alter MODIFY ids INT NOT NULL;

ALTER TABLE text_alter ADD PRIMARY KEY (ids);

也可以使用 ALTER 命令删除主键

ALTER TABLE text_alter DROP PRIMARY KEY;

5、显示索引信息

使用 SHOW INDEX 命令来列出表中的相关的索引信息。可以通过添加 \G 来格式化输出信息。

SHOW INDEX FROM text_alter\G


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
人工智能 弹性计算 云计算
阿里云服务器优惠价格全解析:1年、1个月、1小时费用标准+选型指南+实操技巧
2026年阿里云持续深耕普惠云计算领域,针对个人用户、开发者、中小企业及大型企业等不同群体,推出了覆盖全场景、全配置的服务器优惠政策,核心呈现“入门款长效低价、中高配阶梯降价、多计费模式灵活适配”的特点,优惠力度最大直降90%,彻底打破了“云计算高成本”的认知壁垒。本文基于阿里云官方最新定价、优惠活动政策及全网实测资料,详细拆解2026年阿里云服务器1年、1个月、1小时的具体费用标准,区分轻量应用服务器、ECS云服务器、GPU实例三大核心产品,补充计费模式解读、不同场景选型建议、优惠领取实操、成本优化技巧及常用代码命令,全程无无关平台信息,透明无隐藏消费,帮助各类用户精准核算成本、锁定优惠
2119 16
|
4月前
|
IDE 编译器 开发工具
Dev C++ 6.5安装与配置教程 Windows版:解压+管理员运行+自定义路径+中文设置指南
Dev-C++是Windows下轻量级C/C++集成开发环境(IDE),含多页编辑、项目管理、调试功能,内置编译器与链接器。本指南详解6.5版下载、管理员安装、D盘自定义路径及中文界面配置,助你快速上手开发。(239字)
|
2月前
|
数据采集 Linux API
阿里云部署 Hermes Agent/OpenClaw 保姆级图文流程:免费API配置与新手常见问题解答
OpenClaw(Clawdbot)作为一款具备长期记忆与个性化能力的AI助手,凭借爬虫、数据分析、自动化操作等功能成为高效的工作辅助工具,但其本地部署过程中存在的环境配置、网络限制、模型对接等问题,让零基础新手望而却步。2026年针对这一问题,本文整理了阿里云、MacOS、Linux、Windows11多平台的OpenClaw本地部署完整步骤,同时包含阿里云百炼免费大模型API配置方法,并对部署和使用中的常见问题逐一解答,让新手也能零门槛实现OpenClaw的本地搭建与功能使用。
440 0
|
3月前
|
人工智能 缓存 运维
企业如何根据应用场景选择Claude、GPT与Gemini
本文针对企业大模型选型,提出“任务-能力精准匹配”核心理念,结合GPT-5.4、Claude 4.6/Opus 4.6、Gemini 3.1 Pro特性,分场景推荐模型,给出分层落地、四大评估维度及统一接入层架构建议,助力降本增效与工程韧性提升。
504 0
|
人工智能 算法 搜索推荐
电商API的“AI革命”:全球万亿市场如何被算法重新定义?
AI+电商API正引领智能商业变革,通过智能推荐、动态定价与自动化运营三大核心场景,大幅提升转化率、利润率与用户体验。2025年,75%电商API将具备个性化能力,90%业务实现智能决策,AI与API的深度融合将成为未来电商竞争的关键基石。
|
9月前
|
数据采集 人工智能 运维
拔俗AI数据治理大模型系统:用“智能大脑”管好企业数据家底
AI大模型正重塑企业数据治理:通过语义理解打破数据孤岛,自动化规则生成提升效率,智能分类分级强化安全,并以AI智能体实现主动运维。这一体系将传统治理升级为高效、动态的智能基础设施,释放数据价值。
518 0
|
监控 Java 时序数据库
性能监控之Telegraf+InfluxDB+Grafana实现JMX实时监控
【6月更文挑战15天】性能监控之Telegraf+InfluxDB+Grafana实现JMX实时监控
589 6
性能监控之Telegraf+InfluxDB+Grafana实现JMX实时监控
|
虚拟化
VMware NAT 模式 虚拟机网络电缆被拔出,连不上网
VMware NAT 模式 虚拟机网络电缆被拔出,连不上网
1106 0
|
存储 安全 数据挖掘
《C 语言字符串处理:从基础操作到高级应用》
《C 语言字符串处理:从基础操作到高级应用》全面介绍了C语言中字符串的处理方法,从基本概念、常见操作到复杂应用,适合初学者及有经验的开发者参考学习。本书通过丰富实例讲解,帮助读者掌握字符串处理技巧。

热门文章

最新文章