年终大学习之MySQL数据库优化学习笔记(六) ——索引(一)

来源:互联网 发布:文本编辑 mac 编辑:程序博客网 时间:2024/05/01 12:15

    从这一节开始学习索引的知识。

    在这里,我们主要学习四种索引:

        主键索引,唯一索引,全文索引,普通索引

    小技巧:如何查看索引,这里有三种方法;

//第一种方法desc table_name;//第二种方法show index(es) from table_name;//第三种方法show keys from table_name;


   首先学习主键索引:

    1.添加

    当一张表,把某个列设为主键的时候,则该列就是主键索引;

    按照习惯,当创建每一张表的时候,就应该创建主键,首先是为了满足第二范式,其次就是为了查找速度的提高,设置主键之后,就自然形成了主键索引,而有索引和没有索引之间的查询速度相差是非常大的。

  如果你在创建表的时候,没有设置主键,也可以在创建表后,再添加,指令如下:

alter table table_name add primary key (列名)
  这里需要了解一下MySQL创建出来的索引存放在哪。

  一般的数据库会生成三种文件,分别是.frm,.myd, .myi,文件,首先.frm文件保存的是表的结构,.myd文件保存的是表的数据,这个文件一般是最大的,最后是.myi文件,保存的就是索引,在执行上面的指令的时候,所产生的索引就会保存在这个文件当中。

  索引的工作原理:这就涉及到数据结构的原理了,一般索引的操作原理分为两种:一个是二叉树排序查询,一个是哈希排序,这两个算法都是很重要的,在复习数据结构的时候会认真的将其学习一边。

  主键索引的效率是很高的,上节建立的emp大表,一般的查询语句需要1秒多,属于慢查询了,而添加了主键索引后,基本需要0点0几秒就可以完成了,效率的提高还是很大的。

   然后就是普通索引:

   一般来说,普通索引的创建,是先创建表,然后再创建普通索引

   创建索引的指令如下:

create index 索引名 from table_name (列 1,列名2);

    下一节继续介绍全文索引。


0 0