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

Mysql 创建索引

1. 在创建表时添加索引

在使用CREATE TABLE语句创建表的同时,可以直接定义索引。例如,创建一个包含索引的表:

CREATE TABLE clothes (id INT PRIMARY KEY,c_brand VARCHAR(100),c_type VARCHAR(50),c_size VARCHAR(10),price DECIMAL(10, 2),INDEX idx_c_brand (c_brand),INDEX idx_c_type_size (c_type, c_size)
);

这里,idx_c_brand是针对c_brand字段的普通索引,而idx_c_type_size是一个复合索引,覆盖了c_typec_size两个字段。

2. 使用ALTER TABLE命令添加索引

如果你已经创建了表,但后来决定需要添加索引,可以使用ALTER TABLE语句。例如,给已存在的students表的age字段添加一个索引:

ALTER TABLE students ADD INDEX idx_age (age);

3. 使用CREATE INDEX命令

直接使用CREATE INDEX语句为现有的表创建索引,这与ALTER TABLE方式效果相同,但语法上更直观地专注于索引操作:

CREATE INDEX idx_name ON students (name);

4. 创建唯一索引和全文索引

  • 唯一索引:可以使用CREATE UNIQUE INDEX确保索引列的值唯一
CREATE UNIQUE INDEX idx_email ON users (email);
  • 全文索引:适用于文本字段的全文搜索,使用CREATE FULLTEXT INDEX
CREATE FULLTEXT INDEX idx_description ON articles (description);

注意事项:

  • 在选择索引列时,应考虑经常出现在WHERE子句、ORDER BY子句和GROUP BY子句中的列。
  • 索引可以显著提高查询速度,但会降低写入(INSERT、UPDATE、DELETE)操作的速度,因为索引也需要更新。
  • 避免过度索引,过多的索引会占用额外的磁盘空间,并可能导致数据库性能下降。
  • 考虑索引的选择性,即索引区分不同记录的能力,选择性高的索引(基数大)通常更有效。
  • 可以使用SHOW INDEX FROM table_name;来查看表上现有的索引情况。
http://www.lryc.cn/news/349393.html

相关文章:

  • vaspkit 画 Charge-Density Difference
  • FreeRTOS缩小bss段的处理
  • STM32数字示波器+详细注释+上位机程序+硬件
  • 【平衡二叉树】AVL树(双旋)
  • 【保姆级介绍自动化的讲解】
  • 【大数据面试题】27 讲下Doris的物化视图
  • kylin 使用心得
  • 在线音乐系统
  • LeetCode算法题:49. 字母异位词分组(Java)
  • 第五课,输入函数、布尔类型、比较运算和if判断
  • 数学建模——线性回归模型
  • 景源畅信:抖音小店比较冷门的品类分享?
  • java项目之企业资产管理系统(springboot+vue+mysql)
  • [ardunio ide导入blinker库]
  • Llama 3 超级课堂 -笔记
  • Leetcode 第 129 场双周赛题解
  • 队列的讲解
  • 算法学习笔记(LCA)
  • 记一次苹果appstore提审拒审问题1.2
  • 在做题中学习(59):除自身以为数组的乘积
  • centos 把nginx更新到最新版本
  • 01.认识HTML及常用标签
  • 从零开始:C++ String类的模拟实现
  • 银河麒麟服务器操作系统V10-SP2部署gitlab服务
  • 【计算机毕业设计】基于SSM+Vue的线上旅行信息管理系统【源码+lw+部署文档+讲解】
  • 链表CPP简单示例
  • 智能EDM邮件群发工具哪个好?
  • 低代码与AI技术发展:开启数字化新时代
  • 风电功率预测 | 基于遗传算法优化BP神经网络实现风电功率预测(附matlab完整源码)
  • uni-segmented-control插件使用