返回顶部
  • 发帖数48
  • 粉丝1

北京音视跳动首席架构师。拥有10多年的音视频实时互动直播研发经验,多年团队管理经验。参加并设计了多个高负载,大并发服务器架构。曾在全时云会议担任研发经理,带领团队研发同时进行10000场会议的音视频会议平台。曾在跟谁学团队担任直播研发高级经理,带领团队研发在线教育直播平台,同一教室内可支持上万人。

[数据库] 关于MySQL索引的定义及理解

[复制链接]
admin 显示全部楼层 发表于 2020-12-1 09:13:21 |阅读模式 打印 上一主题 下一主题
1、定义
索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能
非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。
索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高好几个数量级。
索引相当于字典的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页去查。
可想而知!!非常重要的概念!!!2、MySQL的索引分类


索引分类
1.普通索引index :加速查找
2.唯一索引
主键索引:primary key :加速查找+约束(不为空且唯一)
唯一索引:unique:加速查找+约束 (唯一)
3.联合索引
\-primary key(id,name):联合主键索引
\-unique(id,name):联合唯一索引
\-index(id,name):联合普通索引
4.全文索引fulltext :用于搜索很长一篇文章的时候,效果最好。
5.空间索引spatial :了解就好,几乎不用 3、创建


  1. `善用帮助文档`
  2. `help create`
  3. `help create index`
  4. `==================`
  5. `1.创建索引`
  6. `-在创建表时就创建(需要注意的几点)`
  7. `create table s1(`
  8. `id int ,#可以在这加primary key`
  9. `#id int index #不可以这样加索引,因为index只是索引,没有约束一说,`
  10. `#不能像主键,还有唯一约束一样,在定义字段的时候加索引`
  11. `name char(20),`
  12. `age int,`
  13. `email varchar(30)`
  14. `#primary key(id) #也可以在这加`
  15. `index(id) #可以这样加`
  16. `);`
  17. `-在创建表后在创建`
  18. `create index name on s1(name); #添加普通索引`
  19. `create unique age on s1(age);添加唯一索引`
  20. `alter table s1 add primary key(id); #添加住建索引,也就是给id字段增加一个主键约束`
  21. `create index name on s1(id,name); #添加普通联合索引`
  22. `2.删除索引`
  23. `drop index id on s1;`
  24. `drop index name on s1; #删除普通索引`
  25. `drop index age on s1; #删除唯一索引,就和普通索引一样,不用在index前加unique来删,直接就可以删了`
  26. `alter table s1 drop primary key; #删除主键(因为它添加的时候是按照alter来增加的,那么我们也用alter来删)`
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

星点互联 成立于2014年8月,是目前国内优秀的开源技术社区,拥有超过300万会员,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作