mysql索引如何用
索引是一种特别的文件(InnoDB数据表上的索引是表空间的一个组成局部),它们包括着对数据表里所有记载的援用指针。更通俗的说,数据库索引好比是一本书前面的名目,能加速数据库的查询速度。上述SQL语句,在没有索引的状况下,数据库会遍历全部200条数据后选中相符前提的;而有了响应的索引之后,数据库会直接在索引中查寻相符前提的选项。要是我们把SQL语句换成“SELECT * FROM article WHERE id=2000000”,那么你是但愿数据库按照次序读取完200万行数据今后给你效果还是直接在索引中定位呢?(注:个别 数据库默许都会为主键生成索引)。
举荐课程:MySql教程。
索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据寄存的物理位置为次序的,而非聚簇索引就不同了;聚簇索引能提高多行检索的速度,而非聚簇索引关于单行的检索很快。
MySQL索引的类型
1. 普通索引
这是最根本的索引,它没有任何限定,比方上文中为title字段新建的索引就是一个普通索引,MyIASM中默许的BTREE类型的索引,也是 我们大多数状况下用到的索引。
–直接新建索引 CREATE INDEX index_name ON table(column(length)) –修改表构造的方式增加索引 ALTER TABLE table_name ADD INDEX index_name ON (column(length)) –新建表的时候同时新建索引 CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL , `time` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), INDEX index_name (title(length)) ) –删除索引 DROP INDEX index_name ON table
2. 独一索引
与普通索引相似,不一样的就是:索引列的值必需独一,但允许有空值(注意和主键不一样)。要是是组合索引,则列值的组合必需独一,新建办法和普通索引相似。
–新建独一索引 CREATE UNIQUE INDEX indexName ON table(column(length)) –修改表构造 ALTER TABLE table_name ADD UNIQUE indexName ON (column(length)) –新建表的时候直接指定 CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL , `time` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), UNIQUE indexName (title(length))
以上就是mysql索引如何用的细致内容,更多请关注 百分百源码网 其它相干文章!