zoukankan      html  css  js  c++  java
  • Mysql 的索引有哪些

    MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。MySQL索引常用有:主键索引唯一索引普通索引全文索引和组合索引还有一些 单列索引、多列索引的说法.

    主键索引:

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

    唯一索引:

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

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

    全文索引:
       全文索引的索引类型为FULLTEXT。全文索引可以在varchar、char、text类型的列上创建。可以通过alter tablecreate index命令创建。FULLTEXT 用于搜索很长一篇文章的时候,效果最好。alter table 表名 add FULLTEXT(‘字段名’)

    组合索引:

    指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。

    数据库查询是数据库的最主要功能之一。不管是哪一种方式的索引都是为了,通过给字段添加索引可以提高查询数据的读取速度,提高项目的并发能力和抗压能力。因此数据库系统的设计会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找,这种复杂度为O(n)的算法在数据量很大时速度是有很大程度的下降的。

     

    所以不同的数据库会采用不同的的索引方法:主要是因为内核引擎的不一致,所以数据库在数据结构上算法不一样, 常用的有BTree索引,B+Tree索引,哈希索引,全文索引。MySQL中最常见的两种存储引擎分别是MyISAM和InnoDB,FULLTEXT(全文)索引仅可用于MyISAM和InnoDB只有memory(内存)存储引擎支持哈希索引。

    BTree 的数据结构,从查阅到的数据,类是于二分法进行查找,采用二分法进行查找是非常节省时间的,如果是数据扩大256倍,用二分法查找也只会是原来时间的8倍.

    B+Tree索引是BTree 的变种,在B+Tree结构都在经典BTree的基础上,增加了顺序访问指针指向相邻的叶子。因为B+Tree在空间上的处理会比BTree更优化,所以B+Tree更适合实现外部存储索引结构

    全文索引

    在大量的文本数据中去寻找少量的几个数据,会大大的增加响应时间,所以如果生成全文索引,生成文本单词清单,就快速很多。

    哈希索引

    哈希索引用索引列的值计算该值的hashCode,然后在hashCode相应的位置查找该值所在行数据的物理位置,使用散列算法,因此访问速度非常

    但是有一点要注意的是,数据库的索引是为了增加数据库查询的速度。但是也增加创建和维护时间,减慢写入速度。

  • 相关阅读:
    asp.net -mvc框架复习(6)-基于MVC实现简单计算器
    asp.net -mvc框架复习(5)-ASP.NET MVC中的视图简单使用
    asp.net -mvc框架复习(4)-ASP.NET MVC中的约定规则
    asp.net -mvc框架复习(3)-控制器和动作方法的任务分析
    asp.net -mvc框架复习(2)-创建ASP.NET MVC 第一个程序以及MVC项目文件夹说明
    中心项目-网络连接示意图
    asp.net -mvc框架复习(1)-ASP.NET网站开发概述
    复习总结正则表达式-下
    复习总结正则表达式-上
    Http如何利用304让浏览器去更新数据
  • 原文地址:https://www.cnblogs.com/youhongliang/p/12162679.html
Copyright © 2011-2022 走看看