zoukankan      html  css  js  c++  java
  • 有关mysql索引

    1.首先我们需要明确一下什么是索引以及为什么要使用索引:

      索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。在生产环境中,对于数据库我们最常进行的是查询的操作,而当我们的数据非常大的时候,提高我们的查询效率就变得尤为重要,而索引可以帮我们很好的优化这方面的性能.简单来说,索引就相当于我们新华大字典的音序表,可以快速的帮我们找到我们需要的数据所在的位置

    2.实现:

    索引通常是使用b+树这种数据结构实现的,b+tree 索引加速了数据访问,因为存储引擎不会再去扫描整张表得到需要的数据;相反,它从根节点开始,根节点保存了子节点的指针,存储引擎会根据指针快速寻找数据。

    3.索引的分类

    (1)普通索引index :加速查找
    (2)唯一索引
        主键索引:primary key :加速查找+约束(不为空且唯一)
        唯一索引:unique:加速查找+约束 (唯一)
    (3)联合索引
        -primary key(id,name):联合主键索引
        -unique(id,name):联合唯一索引
        -index(id,name):联合普通索引
    (4)全文索引fulltext :用于搜索很长一篇文章的时候,效果最好。
    (5)空间索引spatial

    4.索引的使用

    1 #方法一:创建表时
     2       CREATE TABLE 表名 (
     3                 字段名1  数据类型 [完整性约束条件…],
     4                 字段名2  数据类型 [完整性约束条件…],
     5                 [UNIQUE | FULLTEXT | SPATIAL ]   INDEX | KEY
     6                 [索引名]  (字段名[(长度)]  [ASC |DESC]) 
     7                 );
     8 
     9 
    10 #方法二:CREATE在已存在的表上创建索引
    11         CREATE  [UNIQUE | FULLTEXT | SPATIAL ]  INDEX  索引名 
    12                      ON 表名 (字段名[(长度)]  [ASC |DESC]) ;
    13 
    14 
    15 #方法三:ALTER TABLE在已存在的表上创建索引
    16         ALTER TABLE 表名 ADD  [UNIQUE | FULLTEXT | SPATIAL ] INDEX
    17                              索引名 (字段名[(长度)]  [ASC |DESC]) ;
    18                              
    19 #删除索引:DROP INDEX 索引名 ON 表名字;

    5.关于使用索引的优缺点

    优点:

      1)建立索引可以大大提高检索的数据,以及减少表的检索行数

      2)在表连接的连接条件 可以加速表与表直接的相连 

      3)在分组和排序字句进行数据检索,可以减少查询时间中 分组 和 排序时所消耗的时间(数据库的记录会重新排序)

      4)建立索引,在查询中使用索引 可以提高性能

    缺点:

      1)创建和维护索引的时候,会消耗时间

      2)创建出来的索引会占据一定的物理空间

      3)当对表的数据进行 INSERT,UPDATE,DELETE 的时候,索引也要动态的维护,这样就会降低数据的维护速度,(建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快)。

    
    


    人生没有白走的路,每一步都算数 恐惧是万恶之源
  • 相关阅读:
    Java回调理解 (step by step)
    Android中网络流量控制(防火墙)——Iptables
    JavaScript学习总结1
    怎样在Android实现桌面清理内存简单Widget小控件
    linux文件夹介绍
    git版本号回滚
    页面载入完毕后表单获得焦点
    (转)Arcgis for JS之Cluster聚类分析的实现
    (转)Arcgis for javascript实现百度地图ABCD marker的效果
    (转)Hadoop入门进阶课程
  • 原文地址:https://www.cnblogs.com/niusha/p/10356093.html
Copyright © 2011-2022 走看看