MySQL中索引与视图的用法与差异详解
发布时间:2022-03-02 14:45:38 所属栏目:MySql教程 来源:互联网
导读:本文主要给大家介绍了关于MySQL中索引与视图的使用与区别的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 一、概述 所有的Mysql列类型都可以被索引。 mysql支持BTREE索引、HASH索引、前缀索引、全文本索引(FULLTEXT)【只有My
本文主要给大家介绍了关于MySQL中索引与视图的使用与区别的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 一、概述 所有的Mysql列类型都可以被索引。 mysql支持BTREE索引、HASH索引、前缀索引、全文本索引(FULLTEXT)【只有MyISAM引擎支持,且仅限于char,varchar,text列】、空间列索引【只有MyISAM引擎支持,且索引的字段必须非空】,但不支持函数索引。 MyISAM和InnoDB存储引擎的表默认创建BTREE索引, MEMORY存储引擎的表默认创建HASH索引。 二、创建索引 create index语法为: create [unique|fulltext|spatial] index index_name [using index_type] on tbl_name(index_col_name, ...); alter_specification: ... ADD INDEX [index_name] [index_type] (index_col_name,...) ... 例如:为city表创建10个字节的前缀索引 mysql> create index cityName on city(Name(10)); mysql> alter table city add index cityName(Name(10)); 三、查看索引 可以使用show index from table;查看table表的当前所有索引。 四、删除索引 drop index index_name on tbl_name; 五、BTREE索引和HASH索引 MEMORY存储引擎的表可以选择使用BTREE索引和HASH索引 六、设计索引的原则 搜索的索引列,不一定是要选择的列。最适合索引的列是出现在where子句中的列,而不是出现select后中的列。 使用唯一索引。选择容易数值容易区分的列进行索引。例如对生日的索引要比对性别的索引要好,因为生日的列具有不同的值,比较容易区分,而性别列只有M和F,此时索引用处不大,每次索引都得出大约一半的行。 使用短索引。对字符串的前缀索引中通常会指定一个前缀长度,如果在前10到20个字符内,多数值是唯一的,那么就可以不必对整个列进行索引,而是对前10到20个字符进行索引。这样能够节省索引空间,减少I/O时间,提高查询效率。 (编辑:重庆站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |