简单介绍MySQL中索引的使用方法
2015-05-27 00:00
816 查看
数据库索引是一个数据结构,提高操作的速度,在一个表中可以使用一个或多个列,提供两个快速随机查找和高效的顺序访问记录的基础创建索引。
在创建索引时,它应该被认为是将SQL查询的那些列上创建一个或多个索引的列。
实际上,指数也保持主键或索引字段和指针的实际表中每条记录的表型。
用户无法看到索引,它们只是用来加快查询速度,将用于数据库搜索引擎找到的记录速度非常快。
INSERT和UPDATE语句表上的索引需要更多的时间,成为快速对这些表的SELECT语句。究其原因是,当进行插入或更新,数据库以及需要惰性或更新索引值。
简单的唯一索引:
可以创建一个唯一索引的表。唯一的索引意味着两个行不能拥有相同的索引值。这里是语法来创建索引的表
CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...);
可以使用一个或多个列上创建索引。例如,我们可以创建一个索引的使用在表tutorials_tbl的tutorial_author列上
CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)
可以创建一个简单的索引的表。只要省略UNIQUE关键字的查询创建一个简单的索引。简单的索引允许重复表中的值。
如果你想在一列以降序索引值,可以在列名后添加保留字DESC:
mysql> CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)
ALTER命令添加和删除索引:
有四种类型的语句表添加索引:
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) : 这条语句添加一个主键,这意味着索引值必须是唯一的,不能是NULL。
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建一个索引,其值必须是唯一的(除NULL值,这可能会多次出现)。
ALTER TABLE tbl_name ADD INDEX index_name (column_list): 这增加了一个普通的索引,其中的任何值,可能会出现多于一次。
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list): 这将创建一个特殊的FULLTEXT索引,用于文本搜索的目的。
下面是这个例子,在现有的表添加索引。
mysql> ALTER TABLE testalter_tbl ADD INDEX (c);
可以删除任何INDEX通过使用DROP子句和使用ALTER命令。试试下面的例子上面创建的索引下降。
mysql> ALTER TABLE testalter_tbl DROP INDEX (c);
可以删除任何INDEX通过使用DROP子句t和使用ALTER命令。试试下面的例子上面创建的索引x。
ALTER命令来添加和删除PRIMARY KEY:
您可以添加主键,以及在相同的方式中。但要确保主键这是NOT NULL的列上。
这是在现有的表添加主键的例子。这将NOT NULL列,然后将其添加为一个主键。
mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
可以使用ALTER命令删除主键如下:
mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;
要删除索引,这不是一个PRIMARY KEY,所以必须指定索引的名称。
显示索引信息:
您可以使用SHOW INDEX命令,列出所有相关联的索引表。垂直格式输出(指定由\ G)往往是有用的这句话,以避免长时间行重叠:
试试下面的例子:
mysql> SHOW INDEX FROM table_name\G
........
在创建索引时,它应该被认为是将SQL查询的那些列上创建一个或多个索引的列。
实际上,指数也保持主键或索引字段和指针的实际表中每条记录的表型。
用户无法看到索引,它们只是用来加快查询速度,将用于数据库搜索引擎找到的记录速度非常快。
INSERT和UPDATE语句表上的索引需要更多的时间,成为快速对这些表的SELECT语句。究其原因是,当进行插入或更新,数据库以及需要惰性或更新索引值。
简单的唯一索引:
可以创建一个唯一索引的表。唯一的索引意味着两个行不能拥有相同的索引值。这里是语法来创建索引的表
CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...);
可以使用一个或多个列上创建索引。例如,我们可以创建一个索引的使用在表tutorials_tbl的tutorial_author列上
CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)
可以创建一个简单的索引的表。只要省略UNIQUE关键字的查询创建一个简单的索引。简单的索引允许重复表中的值。
如果你想在一列以降序索引值,可以在列名后添加保留字DESC:
mysql> CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)
ALTER命令添加和删除索引:
有四种类型的语句表添加索引:
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) : 这条语句添加一个主键,这意味着索引值必须是唯一的,不能是NULL。
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建一个索引,其值必须是唯一的(除NULL值,这可能会多次出现)。
ALTER TABLE tbl_name ADD INDEX index_name (column_list): 这增加了一个普通的索引,其中的任何值,可能会出现多于一次。
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list): 这将创建一个特殊的FULLTEXT索引,用于文本搜索的目的。
下面是这个例子,在现有的表添加索引。
mysql> ALTER TABLE testalter_tbl ADD INDEX (c);
可以删除任何INDEX通过使用DROP子句和使用ALTER命令。试试下面的例子上面创建的索引下降。
mysql> ALTER TABLE testalter_tbl DROP INDEX (c);
可以删除任何INDEX通过使用DROP子句t和使用ALTER命令。试试下面的例子上面创建的索引x。
ALTER命令来添加和删除PRIMARY KEY:
您可以添加主键,以及在相同的方式中。但要确保主键这是NOT NULL的列上。
这是在现有的表添加主键的例子。这将NOT NULL列,然后将其添加为一个主键。
mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
可以使用ALTER命令删除主键如下:
mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;
要删除索引,这不是一个PRIMARY KEY,所以必须指定索引的名称。
显示索引信息:
您可以使用SHOW INDEX命令,列出所有相关联的索引表。垂直格式输出(指定由\ G)往往是有用的这句话,以避免长时间行重叠:
试试下面的例子:
mysql> SHOW INDEX FROM table_name\G
........
相关文章推荐
- 简单介绍MySQL中索引的使用方法
- MySql索引的使用方法及详细介绍
- MySql索引详细介绍及正确使用方法
- jmeter使用方法简单介绍
- Mysql的使用 -简单的索引
- 正則表達式基本使用方法简单介绍
- mysql管理工具percona-toolkit-3简单使用介绍
- 简单介绍google protobuf rpc框架使用方法
- CentOS的简单使用之配置编译MySQL( 版本号:mysql-community-5.7.18-1.el7.src.rpm,主要参考官网方法)
- mysql索引的简单使用
- MYSQL使用索引的方法
- MySQL索引使用方法和性能优化原文链接
- C++标准库bitset类型的简单使用方法介绍
- mysql管理工具percona-toolkit-3简单使用介绍
- epoll使用方法&简单原理介绍&详细的select/poll/epoll对比
- MySQL索引使用方法和性能优化
- (转)TreeSet简单介绍与使用方法
- hive索引简单使用介绍
- Atom-IDE 的使用方法简单介绍
- 【转】MySQL索引使用方法和性能优化