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

mysql--索引

索引作为一种数据结构,其用途是用于提升检索数据的效率。

分类

普通索引(INDEX):索引列值可重复
唯一索引(UNIQUE):索引列值必须唯一,可以为NULL
主键索引(PRIMARY KEY):索引列值必须唯一,不能为NULL,一个表只能有一个主键索引
全文索引(FULL TEXT):给每个字段创建索引

1.创建索引

1.1 普通索引(INDEX)

1.1.1  在创建表时指定

mysql> create table student1(id int not null, name varchar(100) not null, birthdy date, sex char(1) not null, index nameindex (name(50)));
Query OK, 0 rows affected (0.02 sec)

1.1.2  基于表结构创建

mysql> create table student2(id int not null, name varchar(100) not null, birthday date, sex char(1) not null);
Query OK, 0 rows affected (0.01 sec)mysql> create index nameindex on student2(name(50));

1.1.3  修改表结构创建

mysql> create table student3(id int not null, name varchar(100) not null, birthday date, sex char(1) not null);
Query OK, 0 rows affected (0.01 sec)mysql> ALTER TABLE student3 ADD INDEX nameIndex(name(50));

1.2 唯一索引(UNIQUE)

1.2.1  在创建表时指定

mysql> create table student4(id int not null, name varchar(100) not null, birthday date, sex char(1) not null, unique index id_idex (id));
Query OK, 0 rows affected (0.00 sec)

1.2.2  基于表结构创建

mysql> create table student5(id int not null, name varchar(100) not null, birthday date, sex char(1) not null);
Query OK, 0 rows affected (0.00 sec)mysql> CREATE unique INDEX idIndex ON student5(id);

2. 删除索引

2.1 普通索引(INDEX)

2.1.1 直接删除

mysql> DROP INDEX nameIndex ON student1;

2.1.2 修改表结构删除

mysql> ALTER TABLE student2 DROP INDEX nameIndex;

2.2 唯一索引(UNIQUE)

2.2.1 直接删除

mysql> DROP INDEX idIndex ON student4;

2.2.2 修改表结构删除

mysql> ALTER TABLE student DROP INDEX idIndex;

2.3 查看索引

mysql> SHOW INDEX FROM tab_name;

3.问题:

3.1 导致SQL执行慢的原因:

1.硬件问题。如网络速度慢,内存不足,I/O吞吐量小,磁盘空间满了等。
2.没有索引或者索引失效.
3.数据过多

3.2 索引失效的原因:

运用函数
统计信息不准确:当表中的数据发生大量的插入、更新或者删除操作后,统计信息可能就不再准确
数据分布不均
或(两者都对)
数据类型不匹配
大量的模糊查询
函数的大量使用

注意点:

index(key)每张表可以有很多列做index,必须的起名

索引:当查询速度过慢可以通过建立优化查询速度,可以当作调优

相关文章:

  • 多平台输入法+助聊APP开发技术指南:从概念到实现
  • 华为云Astro轻应用利用自定义连接器调用第三方接口实际操作
  • 传奇各职业/战士/法师/道士戒指爆率及出处产出地/圣战/法神/天尊/虹魔/魔血/麻痹/超负载/求婚/隐身/传送/复活/护身/祈祷/火焰
  • GAMES202-高质量实时渲染(Assignment 2)
  • 阿里云服务器 篇五(加更):短链服务网站:添加反垃圾邮件功能
  • Unity Text打字机效果,支持富文本
  • C++ 与 Lua 联合编程
  • [预备知识]6. 优化理论(二)
  • 如何配置NGINX作为反向代理服务器来缓存后端服务的响应?
  • 微信小程序 自定义组件 标签管理
  • [SoC]AXI总线Performance验证方案
  • 【AI面试准备】Git与CI/CD及单元测试实战指南
  • [Linux]从零开始的STM32MP157 Buildroot根文件系统构建
  • mindyolo填坑
  • 如何利用dify 生成Fine‑tune 需要的Alpaca 格式数据
  • 正则表达式与文本三剑客grep、sed、awk
  • linux指令中的竖线(“|”)是干啥的?【含实例展示】
  • 数据库系统概论|第五章:数据库完整性—课程笔记1
  • 【服务器通信-socket】——int socket(int domain, int type, int protocol);
  • DBeaver连接人大金仓数据库V9
  • 国家能源局:鼓励各地探索深远海、沙戈荒等可再生能源制氢场景
  • 广西科学调度保障春灌面积1373.53万亩
  • 孙一凡的东欧狂想音乐会:一场穿越东欧的听觉绮梦
  • 五大白酒去年净利超1500亿元:贵州茅台862亿领跑,洋河营收净利齐降
  • 美“群聊泄密门”始作俑者沃尔兹将离职
  • 经济日报社论:书写新征程上奋斗华章