索引介绍及索引的分类

在一个表中,主键索引只能有一个,唯一索引可以有多个

  • 主键索引(PRIMARY KEY) :唯一的标识,主键不可重复 (id怎么能有两个1,或者两个2呢),只能有一个列作为主键
  • 唯一索引(UNIQUE KEY):避免重复的列出现,唯一索引可以重复,多个列都可以标识为唯一索引
  • 常规索引(默认的)(KEY/INDEX):index,key 关键字来设置
  • 全文索引(FullText):在特定的数据库引擎下才有,MYISAM 。快速定位数据
复制代码
 1 -- 索引的使用
 2 -- 1,在创建表的时候给字段增加索引
 3 -- 2, 创建完毕后,增加索引
 4 
 5 -- 显示所有的索引信息
 6 SHOW INDEX FROM student
 7 
 8 -- 增加一个全文索引(索引名)列名
 9 ALTER TABLE school.student ADD FULLTEXT INDEX `studentName`(`student`)
10 
11 -- explain 分析sql执行的状况
12 EXPLAIN SELECT*FROM student; -- 非全文索引
13 EXPLAIN SELECE*FROM student WHERE MATCH(studentName) AGAINST(`刘`);
复制代码

 

索引原则:

  • 索引不是越多越好
  • 不要对经常变动的数据加索引
  • 小数据量的表不需要加索引
  • 索引一般加在常用来查询的字段上

索引的数据结构:

Hash类型的索引

Btree:InnoDB的默认索引结构

 

阅读:http://blog.codinglabs.org/articles/theory-of-mysql-index.html

 

posted on   Love&Share  阅读(371)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示