• mysql索引


    mysql索引的四种类型:主键索引、唯一索引、普通索引和全文索引。

    主键索引:
    主键是一种唯一性索引,但它必须指定为PRIMARY KEY,每个表只能有一个主键。

    唯一索引:
    索引列的所有值都只能出现一次,即必须唯一,值可以为空。

    普通索引 :
    基本的索引类型,值可以为空,没有唯一性的限制。

    全文索引:
    全文索引的索引类型为FULLTEXT。全文索引可以在varchar、char、text类型的列上创建。可以通过ALTER TABLE或CREATE INDEX命令创建。对于大规模的数据集,通过ALTER TABLE(或者CREATE INDEX)命令创建全文索引要比把记录插入带有全文索引的空表更快。MyISAM支持全文索引,InnoDB在mysql5.6之后支持了全文索引。

    索引的机制

    为什么我们添加完索引后查询速度为变快?
    传统的查询方法,是按照表的顺序遍历的,不论查询几条数据,mysql需要将表的数据从头到尾遍历一遍
    在我们添加完索引之后,mysql一般通过BTREE算法生成一个索引文件,在查询数据库时,找到索引文件进行遍历(折半查找大幅查询效率),找到相应的键从而获取数据
    3.常见问题

    多大的数据量下建索引会有性能的差别?

    什么样的情况下该对字段建索引?

    4.解决方案

    1、表的主键、外键必须有索引;

    2、数据量超过300的表应该有索引;

    3、经常与其他表进行连接的表,在连接字段上应该建立索引;

    4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;

    5、索引应该建在选择性高的字段上;

    5.编码实战
    让我们来实际操作一下。

    6.扩展思考
    为什么加索引后会使写入、修改、删除变慢?

    索引能让数据库查询数据的速度上升, 而使写入数据的速度下降,原因很简单的, 因为平衡树这个结构必须一直维持在一个正确的状态, 增删改数据都会改变平衡树各节点中的索引数据内容,破坏树结构, 因此,在每次数据改变时, DBMS必须去重新梳理树(索引)的结构以确保它的正确,这会带来不小的性能开销,也就是为什么索引会给查询以外的操作带来副作用的原因。

    7.参考文献

    https://www.cnblogs.com/aspwebchh/p/6652855.html

    8.更多讨论
    1.like 不能用索引?
    尽量减少like,但不是绝对不可用,“xxxx%” 是可以用到索引的,

    想象一下,你在看一本成语词典,目录是按成语拼音顺序建立,查询需求是,你想找以 “一"字开头的成语(“一%”),和你想找包含一字的成语(”%一%")

    除了like,以下操作符也可用到索引:

    <,<=,=,>,>=,BETWEEN,IN
    <>,not in ,!=则不行
    2.多列查询该如何建索引?
    一次查询只能用到一个索引,所以 首先枪毙 a,b各建索引方案
    a还是b? 谁的区分度更高(同值的最少),建谁!
    当然,联合索引也是个不错的方案,ab,还是ba,则同上,区分度高者,在前
    3.一次查询能用多个索引吗?
    不能

    BY : 西安分院 赵立鼐
    视频链接:https://v.qq.com/x/page/u0717zp67w3.html
    ppt:https://it-xzy.github.io/JAVA-NEW/20180925-A-java-1.html#/
    ---------------------
    作者:zln313
    来源:CSDN
    原文:https://blog.csdn.net/zln313/article/details/82722200

  • 相关阅读:
    $resource详解
    大白话讲解Promise(一)
    《AngularJS》5个实例详解Directive(指令)机制
    Openstack实现共有云VPC的SDN网络
    Openstack实现共有云多flat网络
    Openstack使用NFS作为后端存储
    Openstack块存储cinder安装配置
    Openstack创建镜像
    Openstack深入了解虚拟机
    Python全栈day26-27(面向对象进阶)
  • 原文地址:https://www.cnblogs.com/nietzsche2019/p/10933639.html
Copyright © 2020-2023  润新知