MySQL入门学习笔记(1)——索引

来源:转载

Mysql入门——-index 

【索引的含义和特点】

索引是一个单独的、存储在磁盘上的数据库结构,包含对数据库表中所有记录的引用指针。

索引是在存储引擎上实现的,每种存储引擎的索引都不一定完全相同。所有存储引擎支持每个表至少16个索引,总长度至少为256个字节。MySQL中索引的存储类型有两种,BTREE和HASH,其中MyISAM和InnoDB仅只支持BTREE索引,MEMERY/HEAP支持BTREE和HASH索引。


索引的主要优点;

1.唯一索引保证每条记录的唯一性

2.提高查询速度

3.实现数据的参考完整性上,加速表与表之间的连接

4.使用分组和排序子句进行数据查询时,可以减少查询时间

缺点:

1.创建和维护耗时,

2.索引占据磁盘空间

3.对数据表的数据进行更新的时候,索引页需要动态维护

 

索引的分类;

1.普通索引和唯一索引

普通索引定义索引得列可以插入重复值or空值,唯一索引No

2.单索引和组合索引

3.全文索引

全文索引可以在CHAR、VARCHAR、或者TEXT类型列上创建。MYSQL中只有MyISAM存储引擎支持全文索引

4.空间索引

MySQL中空间索引4种:GEOMETRY、POINT、LINESTRING、POLYGON。MySQL使用SPATIAL关键字进行扩展;

创建空间索引的列,必须将其声明为NOT NULL,空间索引只能在存储引擎为MyISAM的表中创建


索引设计简单原则:

1.非越多越好,(1)占用磁盘空间(2)影响insert、delete、update 语句的执行性能,因为数据的更新也需要更新索引

2.经常更新的表避免过多的索引,且索引列尽量少

3.数据量小的表最好不使用索引

4.在条件表达式中经常用到的不同值较多的列上建立索引,反之亦凡;

5.当唯一性是某种数据本身的特征时,建立唯一索引

6.频繁排序分组的列上建立索引,多个则组合索引


【创建索引】

1.创建表的时候

CREATE TABLE table_name [col_name data_type]

[UNIQUE | FULLTEXT|SPATIAL][INDEX|KEY][index_name](col_name[length])[ASC|DESC]

UNIQUE | FULLTEXT|SPATIAL 为可选参数;

index_name 可选参数,若不指定则默认为col_name

length 可选参数,仅字符串类型的字段可指定索引长度


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

O(∩_∩)O哈哈~,本人小白,纯学习笔记~~~望有心人加以指点迷津。。。。

Thanks!


分享给朋友:
您可能感兴趣的文章:
随机阅读: