Mysql之索引

作者: hello_我的哥 | 来源:发表于2018-06-13 17:00 被阅读180次

    索引:其实就好比书的目录,也可以说是书签,索引的存在就是问了更快的查询,就好比你用新华字典查一个字的时候,你也不会一页页的去找,会先去找目录里面的字在哪一页,这样会快很多,索引也是同样的道理

    索引又分了很多种,各种有各种的特点,解决的场景不同,我们要会选择适合的索引

    普通索引:语法:key/index(字段名1,自动名2....)

    唯一索引:它的值是唯一的,不能插入相同的值,和主键索引有类是之处,unique key(字段名1,字段名2....)

    全文索引:主要是为了解决模糊查询而存在的一种索引,当数据量很大的时候,用模糊查询很慢,但是用全文索引是很快的,fulltext(字段名1,字段名2....)

    主键索引:值也是唯一的,一般作用于id,与auto_crement连用,一张表只能有一个主键索引,primary key(字段名)

    下面是新建的表,当一张表有很多索引的时候,一般都把建索引放在最后

    查看表的索引:show index from 表名;

    注意事项:唯一索引和主键索引一样,不能插入重复的值:

    全文索引的用法:

    select * from 表名 where match(列名) against ('值');

    外键约束:就是用来约束两个表之间的数据关系,比如之前的学生表和分数表之间的关系,分数表是依托学生表存在的,不可能存在有分数没有学生的这种情况,外键约束也就是应用在这种情况下,只有引擎innodb才支持,myisam不支持;

    语法:

    foregin key(字段) references 表名(字段名) 

    从下面可以看出,mark表只能插入外键对应的主表有值的数据,所以就不会出现只有分数没有学生的情况,还有一点就是当插入错误,它的id也在增长;

    当有外键的时候,主表的数据也是不能删除的,避免了出现数据错误的情况;

    相关文章

      网友评论

        本文标题:Mysql之索引

        本文链接:https://www.haomeiwen.com/subject/vdqjeftx.html