Mysql索引(简单了解)

Posted fjd-1004

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql索引(简单了解)相关的知识,希望对你有一定的参考价值。

mysql的存储引擎,可以针对不同的表使用不同的存储引擎

  MyISAM:插入,查血速度快,但是不支持事物,所以适用于数据仓库,Web等

  InnoDB:支持事物,所以适合于事物型数据库

  Memory:是将数据存到内存中

  Archive:事物不安全,所以可以用来保存日志什么的

每个引擎细致的还有许多特点,有空可以看看

----------------------------------------------------------------------------------  

索引

  Mysql存储引擎有两种 B树和Hash 

  索引的优点:可以针对指定的一个列或者多个列建立索引,加快查询速度

        可以减少分组或者排序子句的执行时间

 

  索引的缺点:多占内存

        对表进行修改增加删除的时候,相应的索引也需要更改

  索引的分类:单列索引和组合索引

          单列索引指的就是一个索引只有一个列,但是一个表可以有多个单列索引

          组合索引指的就是在表的多个字段上创建的索引

  全文索引:支持值的全部查找,允许重复和null

  创建索引:在建立表的时候创建

  简单的对某个列创建索引

技术图片

查看索引是否创建成功

 技术图片

技术图片

select_type指的是select的类型 比如简单查询,子查询,联合查询

table 查询的表名

partitions 当表需要分区的时候

type 表之间的关系

possible_keys 可选用的索引

key 使用的实际索引

key_len 索引的长度(字节)

ref 关联关系中另一个表的列名

rows 预计读出的数据行的个数

Extra 关联操作的信息

创建唯一索引

技术图片

默认唯一索引的name就是id(默认使用列名)

创建单列索引

技术图片

创建组合索引

技术图片

创建全文索引:关键字 FULLTEXT,只能对varchar char Text类型使用

技术图片

 如果表已经存在

  1.使用ALTER TABLE创建索引

   语法

   ALTER TABLE table_name ADD [UNIQUE|FUUTEXT|SPATIAL]
   [INDEX|KEY] [index_name] (col_name[length],...) [ASC|DESC]
   ALTER TABLE tabletest ADD UNIQUE INDEX (id);
   给tabletest对id列添加唯一索引,名字是id,如果要指定名字后边改成这个 UniqueId(id),意思是添加唯一索引,名字是UniqueId

   2.使用CREATE INDEX创建索引

           语法

  CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON table_name(col_name[length],...)[ASC|DESC]
  CREATE UNIQUE INDEX UniqueId ON tabletest(id)
  在tabletest上对id列创建唯一索引,名字是UniqueId

删除索引
  1.ALTER TABLEF
  语法
  ALTER TABLE table_name DROP INDEX index_name
  2.DROP INDEX
  语法
  DROP INDEX index_name on table_name



----------------------内容很不完善,后续有空会慢慢补充--------------------------------------

以上是关于Mysql索引(简单了解)的主要内容,如果未能解决你的问题,请参考以下文章

了解非索引的mysql限制

MySQL:索引与事物

Mysql索引

Mysql 索引优化分析

mySql索引优化分析

MySQL索引优化分析