MySQL索引

MySQL索引

索引的优势:

  1. 加快查询速度
  2. 创建唯一索引来保证数据表中数据的唯一性
  3. 实现数据的完整性,加速表和表之间的连接
  4. 减少分组的排序时间

增加索引不利的方面:

  1. 创建和维护索引要耗费时间,并且随着数据量而增加
  2. 索引需要占磁盘空间,除了数据表占数据空间之外,每个索引还要占一定的物理空间如果有大量的 索引,索引文件可能比数据文件更快达到最大文件尺寸。
  3. 当对表中的数据进行增加、删除和修改的时候,索引也要动态地维护,这样就降低了数据的维护速度。

普通索引(普通索引是最基础的索引类型,没有唯一性的限制,作用只是加快对面数据访问)

       Alter table 表名 add index 索引名(列名)  //index是索引的意思

       Create index 索引名 on 表名(列);

查看创建的索引

       show create table 表名\G

判断索引是否在被使用

       explain select * from 表名where 条件\G  //条件必须是索引的条件方可判断

唯一索引(减少查询索引列操作的执行时间,尤其是对比比较大的数据表,与普通索引不同:索引列的值必须唯一,但允许有空值,如果是组合索引,则列值的组合必须唯一)

       Alter table 表名 add unique index 索引名(列名)  //index是索引的意思,unique是唯一

       Create unique index 索引名 on 表名(列名)

单列索引(是在数据表中的某一个字段上创建的索引,一个表中可以创建多个单列索引,单列索引和普通索引是几乎没有区别)

       Alter table 表名 add index 索引名(列名)  //index是索引的意思

       Create index 索引名 on 表名(列名)

组合索引(是在多个字段上创建一个索引,遵循最左前缀原则,索引最左边的的列来匹配行)

       Alter table 表名 add index 索引名(列1,列2,列3)

       Create index 索引名 on 表名 (列1,列2)

全文索引(用于全文搜索,只支持char、varchar、text列)

       Alter table 表名 fulltext index 索引名(列(限制,数字))  //fulltext全文

       Create fulltext index 索引名 on 表名(列名)

空间索引(空间类型的字段必须为非空  字段的数字类型必须是geometry)

       Alter table 表名 add 列 geometry   //geometry是几何的意思

       Alter table 表名 add spatial index 索引名(列)  //spatial是空间的意思

      

Create spatial index 索引名 on 表名(列)

总结:在已经存在的表上创建索引:Alter table 表名 add [unique唯一索引|fulltext全文索引|spatial空间索引] [index|key] [默认索引名] (定义 索引名[length]) [asc|desc]

删除索引

       Alter table 表名 drop index 索引名;

       drop index 索引名 on 表名;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值