zoukankan      html  css  js  c++  java
  • MySQL索引简介

    对于开发人员来说,Mysql当中最重要的两部分,一个是索引,一个是事务。这两个是开发人员的必备技能。

    1.索引有什么作用?

    拿生活中的例子来说明一下,我们都用过新华字典,字典可以按拼音查找,也可以按笔划来查找,我们暂时把它叫做拼音索引和笔划索引。但是如果没有这两个“索引”,你可能在查找某个字的时候两三天都找不出来,有了这两个索引,你就能在短短几分钟找出来。这样你就能理解索引具体有什么作用了吧。

    作用:提高查询效率当然除了提高查询效率还可以提高排序和分组效率。

    2.索引的定义?

    官方定义:索引是帮助MYSQL高效获取数据的数据结构
    简单理解:索引是排好序的快速查找的数据结构
     
     
    3.索引的结构
    Mysql索引主要有两种结构:B+Tree索引和Hash索引,B+Tree是mysql使用最频繁的一个索引数据结构,Hash索引几乎不用。
    (1) Hash索引
    优点:速度快。hash的理论查询时间复杂度为O(1),即1次
    缺点:
    • hash冲突(采用拉链算法)
    • 无法进行范围查询。例如:where id > 4 and id < 100,此时索引失效(如果是btree索引,则索引不失效)
    • 无法利用前缀索引。例如:前辍索引 hello,hash("hello") 与 hash("helloworld")都是随机的
    • 排序也无法优化
    (2)B+Tree索引
    优点:速度快、支持范围查询
    缺点:索引的构建过程比较复杂。
     
     
    4.索引的类型
    • 主键索引,也是聚簇索引
    • 普通索引,也叫二级索引/次级索引
    • 组合索引
     
  • 相关阅读:
    timer.Interval用法简介
    .net 未被引用的错误
    将Sql查询语句获取的数据插入到List列表里面
    .net 里面打不出来ConfigurationManager
    .net MVC框架里怎么写控件
    数据库里面几个字符类型的区别
    怎么在.net里面解析JSON文件?
    SqlCommand.ExecuteScalar()方法
    git学习笔记
    可变参数的lambda表达式
  • 原文地址:https://www.cnblogs.com/caoxb/p/15525722.html
Copyright © 2011-2022 走看看