栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mysql创建数据库索引

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mysql创建数据库索引

一、数据库索引

        1、为表创建索引的目的是为了加快查询过程,从而更快的响应请求。
        2、而创建索引时,实际上会增加表所占的存储空间,是一直以空间换时间的理念。
        3、Mysql中,若使用InnoDB作为存储引擎,那么默认的索引存储方式就是B+树。
        4、因为创建索引的目的是为了加快查询过程,若有大量的更新和插入过程,可先去除索引,因为索引在插入或更新记录的时候也会动态的更新,这将增加插入和更新数据的执行时间。

二、建表时创建索引
-- 主键索引
CREATE TABLE table_name(
	param type PRIMARY KEY AUTO_INCREMENT,
	...
);

-- 唯一索引
CREATE TABLE table_name(
	param type UNIQUE,
	...
);

-- 外键索引
CREATE TABLE table_name(
	param type,
	...,
	CONSTRANT foreing_key_name FOREING KEY (param) REFERENCES table_name(key);
);
-- 一般索引, 只有Mysql 8.0以上版本支持索引升降序排列 
CREATE TABLE table_name(
	param type,
	...,
	INDEX[KEY] index_name param ASC[DESC]
);

三、建表后添加索引
-- 方式一
ALTER TABLE table_name ADD INDEX[KEY] index_name(param);
-- 方式二
CREATE INDEX index_name ON table_name(param);

四、删除索引
-- 方式一
ALTER TABLE table_name DROP INDEX[KEY] index_name;

-- 方式二
DROP INDEX index_name ON table_name;

-- 注意!!! 有**AUTO_INCREMENT** 定义的索引无法删除

五、隐藏索引

与删除索引不同,隐藏索引的目的是为了让索引在查询是失效,但不从存储空间中真实的删除。
直接在定义索引的最后添加 VISIBLE 或 INVISIBLE 关键字即可,一般使用在修改的过程。

ALTER TABLE table_name ALTER INDEX[KEY] INVISIBLE[VISIBLE];

六、备注及说明         6.1、适合创建索引的多种情况:

                1、字段的属性值存在唯一性约束
                2、条件查询中经常出现的字段
                3、经常GROUP BY 和 ORDER BY的字段
                4、UPDATE和DELETE的条件字段
                5、DISTINCT字段
                6、多表查询时的连接字段(类型需要一致)
                7、相同情况下,使用列类型较小的字段(节省存储空间)
                8、使用字符串前缀(节省空间,但需要分析确认前缀长度)
                9、区分度高的字段,既记录的数量与字段值的数量相近
                10、使用最频繁的字段放在索引的最左侧,与B+树结构有关
                11、多字段的联合索引要优于多字段的单索引

        6.2、不适合创建索引的多种情况:

                1、条件查询中不使用的字段
                2、数据量小的表中不需要创建索引
                3、字段的值存在大量重复(与上述的情况9相反)
                4、经常更新的字段不需要创建索引(增加系统开销)
                5、无序字段不需要创建索引
                6、经常使用的索引建议删除
                7、冗余和重复的索引

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006001.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号