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索引(简单了解)的主要内容,如果未能解决你的问题,请参考以下文章