mysql索引使用总结

目录

一:创建表的时候就创建索引的样例

二:什么是索引?为什么要创建索引?

三:索引的分类

四:索引的创建和删除

  4.1 建表语句是时候就用key或者index创建

4.2 表已经存在,为表添加索引

4.3 查看表的索引

4.4 删除索引


一:创建表的时候就创建索引的样例

create  table if not exists 'target.table'
(
    id,
    report_date,
    fence_id,
    region_key
    primary key('id'),
    key 'fence_key' ('fence_id'),
    key 'region_key' ('region_code')
)Engine = Innodb default  charset = utf8mb4 comment = "注释"
   

二:什么是索引?为什么要创建索引?

    索引用于快速找出在某个列有一特定值的行,不使用索引,mysql必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,mysql能够快速到达一个位置去搜索数据文件,而不必查看所有数据,那么将会节省很大一部分时间。

    举例说明:有一张表,有2万条记录,记录2万个人的信息。表中有一个phone字段记录每个人的电话号码,现在要查询电话号码为xxx的人的信息。如果没有索引,那么将从表中第一条记录一天天往下遍历,直到找到该条信息为止。如果有了索引,那么会将该phone字段,通过一定的方法进行存储,好让在查询该字段上的信息时候,能够快速找到对应的数据,而不必要进行全表遍历。其中,mysql中的索引的存储类型有两种:btree, hash.(innodb和myisam存储索引,只支持btree索引)

三:索引的分类

索引分为四类:单列索引(普通索引,唯一索引,主键索引),组合索引,全文索引。

  • 单列索引:一个索引只包含单个列,但是一个表中可以有多个单列索引。
  •       普通索引:mysql中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和 空值,纯粹为了查询数据更快一点。
  •        唯一索引:索引列中的值必须是唯一索引,但允许有空值。
  •        主键索引:是一种特殊的唯一索引,不允许有空值。
  • 组合索引:在表的多个字段上创建的索引,只有在查询条件中使用了这些字段的左边时,索引才会使用,使用索引时遵循最左前缀集合。
  • 全文索引
  • 空间索引:空间索引是对空间数据类型的字段建立的索引。

四:索引的创建和删除

  4.1 建表语句是时候就用key或者index创建

 创建的时候可以看上面第一节中的语句,使用index或者key都可以

【注意】:我们在创建索引时候没有写索引名称的话,会自动帮我们用字段名称当作索引名

index  multi_index(id,name,age)

4.2 表已经存在,为表添加索引

    alter  table  book  add index name_index(id,name,book);

4.3 查看表的索引

show  index from book\G;

4.4 删除索引

alter table book  dropindex. name_index;

参考:

https://www.jianshu.com/p/0d6c828d3c70

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值