zoukankan      html  css  js  c++  java
  • MySql索引基本

    1.什么是索引

        索引用于快速找出在某个列中有一特定值的行。如果不使用索引,需要遍历整张表,表越大查询耗时越大;

        MySQL中的索引的存储类型有两种:BTREE、HASH。具体实现机制参照另一篇博客;

    2.索引的优缺点分析和使用原则

       优点:

    •    任意字段可以设置索引
    •    索引可以大大加快查询

     缺点:

    •    创建、维护索引需要额外耗时,并且耗时随数据量明显增加
    •    索引需要占据空间,导致提前达到数据最大上线值
    •    数据增、删、改需要维护索引,维护速度降低

      使用原则:

       1. 更新频繁的表应该避免过度索引,对查询频繁的字段应该创建索引;

       2. 数据量小的表不需要索引;

       3. 不同值少的列上(字段上)不要建立索引,例如学生表的"性别"字段上只有男,女两个不同值,无需设置索引;

    3.索引分类

       索引是在存储引擎中实现的,也就是说不同的存储引擎,会使用不同的索引;

       MyISAM和InnoDB存储引擎:只支持BTREE索引

       MEMORY/HEAP存储引擎:支持HASH和BTREE索引

    索引分类 定义 说明
    单列索引

    普通索引:字段没限制,允许在定义索引列中插入重复值、空值;

    唯一索引:索引列中的值必须是唯一的,但允许为空值;

    主键索引:索引列值必须唯一,不允许为空

    一个索引包含单列,但一张表可以有多个索引
    组合索引 表中的多个字段组合上创建的索引 使用组合索引时遵循最左前缀集合
    全文索引 在一堆数据中,通过某个关键字等,就能找到该字段所属的记录行 MyISAM引擎上才能使用,只能在CHAR,VARCHAR,TEXT类型字段上使用全文索引
    空间索引 空间索引是对空间数据类型的字段建立的索引, MySQL中的空间数据类型有四种,GEOMETRY、POINT、LINESTRING、POLYGON

    参考:

     https://www.cnblogs.com/whgk/p/6179612.html

     https://blog.csdn.net/waeceo/article/details/78702584

  • 相关阅读:
    mongodb的热备工具pbm-agent
    注释
    mongodb的启动配置查询serverCmdLineOpts
    副本集状态
    分片集群的serverStatus监控
    副本集的replSetGetStatus监控
    京东
    副本集的replSetGetConfig监控
    mysql的replace函数
    副本集的serverStatus监控
  • 原文地址:https://www.cnblogs.com/albertarmstrong/p/9352165.html
Copyright © 2011-2022 走看看