Home >Database >Mysql Tutorial >浅析MySQL各种索引_MySQL

浅析MySQL各种索引_MySQL

WBOY
WBOYOriginal
2016-06-01 13:13:35927browse

MySQL各种索引(因为是浅析大多都不刻意区分搜索引擎)

INDEX(普通索引):最基本的索引,没有任何限制

        ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

UNIQUE(唯一索引):与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。

        ALTER TABLE `table_name` ADD UNIQUE (`column`)

        注:创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据出现重复。唯一索引可以有多个但索引列的值必须唯一,索引列的值允许有空值。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该使用关键字UNIQUE,把它定义为一个唯一索引。

PRIMARY KEY(主键索引):它 是一种特殊的唯一索引,不允许有空值。 

        ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

FULLTEXT(全文索引):仅可用于 MyISAM 表,针对较大的数据,生成全文索引很耗时好空间。

        ALTER TABLE `table_name` ADD FULLTEXT ( `column` )

COMBINED(组合索引):为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。

        ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

使用索引应该知道的事:

1、虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。

2、建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。

3、索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。

建索引之后你要保护索引良好的执行:

请参照保护索引要注意的问题这篇文字。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn