• mysql索引


    概述

    索引的作用:是用于快速定位实际数据位置的一种机制。

    4种类型:

    主键索引,唯一索引,普通索引,全文索引。

    无论任何类型,都是通过建立关键字与位置的对应的关系来实现的。以上类型的差异,是对关键字的要求不同。

    关键字:记录的部分数据(某个字段,某些字段,某个字段的一部分)

    普通索引:对关键字没有要求。

    唯一索引:要求关键字不能重复,同时增加唯一约束。

    主键索引:要求关键字不能重复,也不能为NULL。同时增加主键约束。

    复合索引:一个索引通过在多个字段建立。

    1,创建索引

    建表时:

    修改表结构时:

    1.添加PRIMARY KEY(主键索引) 
    mysql>alter table table_name add primary key ( column ) 
    2.添加UNIQUE(唯一索引) 
    mysql>alter table table_name add UNIQUE KEY (column)
    3.添加INDEX(普通索引) 
    mysql>alter table table_name add INDEX (column) 
    4.添加复合索引 
    mysql>alter table table_name add INDEX ( column1, column2 )

    2,删除索引

    除了删除主键索引,其它不管什么类型索引都用以下方式

    mysql>alter table table_name drop index  索引名称

    3,查看索引

    show index from table_name

    4,创建索引注意事项

    第一:较频繁的作为查询条件字段应该创建索引

    select * from table_name where id= 1

    第二:唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件

    select * from table_name where sex = '男‘

    第三:更新非常频繁的字段不适合创建索引

    select * from table_name where logincount = 1

    第四:不会出现在WHERE子句中字段不该创建索=>会出现在where子句中的字段创建索引

    5,执行计划

     主要用于分析sql语句的执行情况(并不执行sql语句)得到sql语句是否使用了索引,使用了哪些索引

      语法: desc  sql语句G  

    6,索引的数据结构

     

     7,索引覆盖

     概述:查询字段 索引字段 完全一致或者 索引字段一部分时查询速度非常快

     

     复合索引的索引覆盖,

    idname创建复合索引

    负面影响,增加了索引的尺寸(索引文件变大

  • 相关阅读:
    面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景
    JAVA 线上故障排查套路,从 CPU、磁盘、内存、网络到GC 一条龙!
    面经分享:看非科班研究生如何转行斩获 ATM 大厂的 Offer ?
    Jmeter JDBC配置
    Jmeter JDBC连接
    js基础用法1
    java实现io读取数据
    mysql语句
    java修改linux文件
    linux永久或临时修改dns
  • 原文地址:https://www.cnblogs.com/jdbeyond/p/11357766.html
Copyright © 2020-2023  润新知